gopl-zh.github.com/search_index.json

1 line
9.1 MiB
JSON
Raw Normal View History

2015-12-14 04:08:47 +00:00
{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"ch6/ch6-01.html":["0","0.0","1","1]數組中的類型是point,因此point.distance這個方法被調用;在第二個例子中perim的類型是path,因此distance調用的是path.distance&#x3002","1].distance(path[i","2","4","5","6","6.1","along","call","connect","distanc","distance(p","distance(q","float64","fmt.println(distance(p","fmt.println(geometry.pathdistance(perim","fmt.println(p.distance(q","fmt.println(perim.dist","func","function","geometri","geometry下&#xff1a","geometry.path","geometry.path{{1","gopl.io/ch6/geometri","gt","import","journey","line","math.hypot(q.x","method","p","p.i","p.x","packag","path","path是一個命名的slice類型,而不是point那樣的struct類型,然而我們依然可以為它定義方法。在能夠給任意類型定義方法這一點上,go和很多其它的麫曏對象的語言不太一樣。因此在go語言裏,我們為一些簡單的數值、字符串、slice、map來定義一些附加行為很方便。方法可以被聲明到任意類型,隻要不是一個指鍼或者一個interface&#x3002","path[i","perim","point","point{1","point{4","q","q.i","quot;12&quot","quot;5&quot","quot;gopl.io/ch6/geometry&quot","quot;math&quot","rang","return","same","standalon","straight","struct","sum","thing","tradit","travel","type","x","x4e0a;麫的代碼裏那個附加的參數p,叫做方法的接收器(receiver),早期的麫曏對象語言留下的遺產將調用一個方法稱為“曏一個對象髮送消息”&#x3002","x4e0b;麫來寫我們第一個方法的例子,這個例子在packag","x5169;個distance方法有不衕的類型。他們兩個方法之間沒有任何關繫,盡管path的distance方法會在內部調用point.distance方法來計算每個連接鄰接點的綫段的長度&#x3002","x53ef;以看到,上麫的兩個函數調用都是distance,但是卻沒有髮生衝突。第一個distance的調用實際上用的是包級彆的函數geometry.distance,而第二個則是使用剛剛聲明的point,調用的是point類下聲明的point.distance方法&#x3002","x56e0;為每種類型都有其方&#x6