উত্তর:
এটি কারণ কোলনের পরে যা প্রদর্শিত হয় তা হয় কোনও বন্দর নম্বর বা পরিষেবার নাম হতে পারে।
নিম্নলিখিতটি একটি বৈধ উদাহরণ যেখানে পরিষেবা নামটি কোনও পোর্ট নম্বরের পরিবর্তে ব্যবহৃত হয়:
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
কোনও নির্দিষ্ট পরিষেবার জন্য পোর্ট ম্যাপিং ব্যবহার করে দেখা যাবে net.LookupPort। ইউনিক্স সিস্টেমে /etc/servicesফাইলটি ম্যাপিংয়ের জন্য উত্সাহিত হয়।
একটি সংখ্যা জন্য ডিফল্ট মান 0: যদি একটি ফাংশন হয়
func (u * URL) Port () string
বন্দরের স্টিংয়ের পরিবর্তে রিটার্ন নম্বর 0 হবে
পোর্ট 0 টিসিপি / আইপি নেটওয়ার্কিংয়ের একটি সংরক্ষিত বন্দর, যার অর্থ এটি টিসিপি বা ইউডিপি বার্তায় ব্যবহার করা উচিত নয়। যাইহোক, পোর্ট 0 নেটওয়ার্ক প্রোগ্রামিংয়ে বিশেষত ইউনিক্স সকেট প্রোগ্রামিংয়ে বিশেষ গুরুত্ব বহন করে: সিস্টেম-বরাদ্দকৃত, গতিশীল পোর্টগুলির জন্য অনুরোধ করার জন্য।
এটি বিভিন্ন কার্যক্রমে প্রোগ্রামিংয়ের প্রয়োজন
url.port()একটি স্ট্রিং প্রদান করে ... তবে জিআরএলও সরবরাহ করে url.has_port()। সুতরাং তাত্ত্বিকভাবে আমরা পৃথক করতে পারি http://example.com:/path(একটি বন্দর রয়েছে, তবে port()খালি স্ট্রিং রয়েছে) থেকে http://example.com/path(কোনও বন্দর নেই)। অবশ্যই জিআরএল নিজে এটি করে না! এমনকি এটি এমনকি http://example.com:80/path"বন্দর নেই" বলেও জানিয়েছে যে সুস্পষ্টভাবে নির্দিষ্ট বন্দরটি এই প্রকল্পের সাথে অপ্রয়োজনীয়। যা পাগল , তবে কিছু মনে করবেন না ... পয়েন্টটি হ'ল, Stringতা নয় Optional। তাদের মধ্যে বিবাদ করবেন না।