<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # 鴨子類型 [編譯型語言、解釋型語言、靜態類型語言、動態類型語言概念與區別](https://www.cnblogs.com/zy1987/p/3784753.html?utm_source=tuicool) ~~~ 1.起源:意大利軟件工程師、Python軟件基金會研究員Alex Martelli 于2000年 左右在Python的郵件組中最早將這個概念引入了程序設計范疇中 2.概念來源:Duck typing 這個概念來源于美國印第安納州的詩人詹姆斯·惠特 科姆·萊利(James Whitcomb Riley,1849-1916)的詩句: " When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck."、 3.中文意思:“當看到一只鳥走起來像鴨子、游泳起來像鴨子、叫起來也像鴨 子,那么這只鳥就可以被稱為鴨子。” ~~~ >[info] ## 鴨子類型 -- 解釋 ~~~ 1.簡單的說鴨子類型:只關心對象的行為,不關心對象本身 2.舉個書中的例子:js 王國的國王覺得鴨子叫聲很美妙,他要組織一個大型 的鴨子合唱團,一共需要1000只鴨子,但是最后全國只找到了999只,但還 差一只,怎么辦?就在這個時候發現一只雞叫起來和鴨子一樣,這只雞就成 了第1000個合唱團的成員 3.通過上面的第二條的解釋也可以發現:鴨子和雞就是編程時候的'實例對象' ,我們不關心你是'鴨子對象'還是'雞對象',只關心你能不能像'鴨子一樣叫', 這個叫就是'行為' ~~~ >[danger] ##### 通過代碼實現 ~~~ 1.像下面的代碼案例,以后不管你是雞鴨魚還是其他動物,只要你會鴨子叫就能加 入合唱團,我們只需要吧這類實例放到'joinChoir' 方法中 ~~~ ~~~ // 鴨子 const duck = { duckSing:function () { console.log('嘎嘎嘎') } } // 會鴨子叫的雞 const chicken = { duckSing:function () { console.log('嘎嘎嘎') } } const choir = [] // 合唱團 function joinChoir(animal) { // 只關心你的行為 是能發出鴨子叫 if(animal && typeof animal.duckSing === 'function'){ choir.push(animal) } } joinChoir(duck) joinChoir(chicken) console.log(choir) // 鴨子 ~~~ >[danger] ##### 鴨子類型 -- 在靜態類型語言 ~~~ 1.js 這種動態類型語言不會有類型檢查,因此當我們調用'joinChoir' 方法的時候,根本 關心參數的類型,但靜態類型語言不是這樣,以java 為例你需要聲明'joinChoir'參數類型 但是如果你聲明參數類型只是鴨子,當你傳入雞的類型就會提示錯誤,由于java支持向 上轉型,就可以用接口的形式,讓這些實例都繼承鴨子叫的接口,即'joinChoir'傳參的時候 只需要繼承過這些接口的實例即可 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看