mirror of
				https://github.com/gopl-zh/gopl-zh.github.com.git
				synced 2025-10-31 10:11:37 +00:00 
			
		
		
		
	| @@ -37,7 +37,7 @@ fmt.Println(p.Distance(q.Point)) // "10" | ||||
|  | ||||
| Point類的方法也被引入了ColoredPoint。用這種方式,內嵌可以使我們定義字段特别多的複雜類型,我們可以將字段先按小類型分組,然後定義小類型的方法,之後再把它們組合起來。 | ||||
|  | ||||
| 讀者如果對基於類來實現面向對象的語言比較熟悉的話,可能會傾向於將Point看作一個基類,而ColoredPoint看作其子類或者繼承類,或者將ColoredPoint看作"is a" Point類型。但這是錯誤的理解。請註意上面例子中對Distance方法的調用。Distance有一個參數是Point類型,但q併不是一個Point類,所以盡管q有着Point這個內嵌類型,我們也必鬚要顯式地選擇它。嚐試直接傳q的話你會看到下面這樣的錯誤: | ||||
| 讀者如果對基於類來實現面向對象的語言比較熟悉的話,可能會傾向於將Point看作一個基類,而ColoredPoint看作其子類或者繼承類,或者將ColoredPoint看作"is a" Point類型。但這是錯誤的理解。請註意上面例子中對Distance方法的調用。Distance有一個參數是Point類型,但q併不是一個Point類,所以盡管q有着Point這個內嵌類型,我們也必須要顯式地選擇它。嚐試直接傳q的話你會看到下面這樣的錯誤: | ||||
|  | ||||
| ```go | ||||
| p.Distance(q) // compile error: cannot use q (ColoredPoint) as Point | ||||
|   | ||||
		Reference in New Issue
	
	Block a user