|
|
@@ -1,20 +1,20 @@
|
|
|
-# 11.9 ソユスモソレ
|
|
|
+�ソ# 11.9 遨コ謗・蜿」
|
|
|
|
|
|
-## 11.9.1 クナト�
|
|
|
+## 11.9.1 讎ょソオ
|
|
|
|
|
|
-**ソユスモソレサ�゚ラ隯。スモソレ**イサー�ャネホコホキスキィ」ャヒ�ヤハオマヨイサラ�ホコホメェヌ�コ
|
|
|
+**遨コ謗・蜿」謌冶�怙蟆乗磁蜿」**荳榊桁蜷ォ莉サ菴墓婿豕包シ悟ョ�ッケ螳樒鴫荳榊★莉サ菴戊ヲ∵アゑシ�
|
|
|
|
|
|
```go
|
|
|
type Any interface {}
|
|
|
```
|
|
|
|
|
|
-ネホコホニ萢釥獎ヘカシハオマヨチヒソユスモソレ」ィヒ�サス��� `Java/C#` ヨミ `Object` メ�モテタ獎ヘ」ゥ」ャ`any` サ� `Any` ハヌソユスモソレメサク�ワコテオトア�釗��エ。」
|
|
|
+莉サ菴募�莉也アサ蝙矩�螳樒鴫莠�ゥコ謗・蜿」�亥ョ�ク堺サ�サ�ワ `Java/C#` 荳ュ `Object` 蠑慕畑邀サ蝙具シ会シ形any` 謌� `Any` 譏ッ遨コ謗・蜿」荳荳ェ蠕亥・ス逧�悪蜷肴�郛ゥ蜀吶�
|
|
|
|
|
|
-ソユスモソレタ猴ニ `Java/C#` ヨミヒ�ミタ犒トサ�爛コ `Object` タ爛ャカ�ユ゚オトトソア�イコワマ狄�」
|
|
|
+遨コ謗・蜿」邀サ莨シ `Java/C#` 荳ュ謇譛臥アサ逧�渕邀サ�� `Object` 邀サ�御コ瑚�噪逶ョ譬�ケ溷セ育嶌霑代�
|
|
|
|
|
|
-ソノメヤク�サク�ユスモソレタ獎ヘオトア菽ソ `var val interface {}` クウネホコホタ獎ヘオトヨオ。」
|
|
|
+蜿ッ莉・扈吩ク荳ェ遨コ謗・蜿」邀サ蝙狗噪蜿倬㍼ `var val interface {}` 襍倶ササ菴慕アサ蝙狗噪蛟シ縲�
|
|
|
|
|
|
-ハセタ� 11.8 empty_interface.go」コ
|
|
|
+遉コ萓� 11.8 empty_interface.go��
|
|
|
|
|
|
```go
|
|
|
package main
|
|
|
@@ -56,16 +56,16 @@ func main() {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-ハ莎�コ
|
|
|
+霎灘���
|
|
|
|
|
|
val has the value: 5
|
|
|
val has the value: ABC
|
|
|
val has the value: &{Rob Pike 55}
|
|
|
Type pointer to Person *main.Person
|
|
|
|
|
|
-ヤレノマテ豬トタ�ラモヨミ」ャスモソレア菽ソ `val` アサメタエホクウモ靨サク� `int`」ャ`string` コヘ `Person` ハオタ�オトヨオ」ャネサコ�ケモテ `type-swtich` タエイ簗ヤヒ�トハオシハタ獎ヘ。」テソク� `interface {}` ア菽ソヤレトレエ贍ミユシセンチスク�ヨウ、」コメサク�テタエエ豢「ヒ��ャオトタ獎ヘ」ャチ橫サク�テタエエ豢「ヒ��ャオトハ�センサ�゚ヨクマ��センオトヨクユ�」
|
|
|
+蝨ィ荳企擇逧�セ句ュ蝉クュ�梧磁蜿」蜿倬㍼ `val` 陲ォ萓晄ャ。襍倶コ井ク荳ェ `int`�形string` 蜥� `Person` 螳樔セ狗噪蛟シ�檎┯蜷惹スソ逕ィ `type-swtich` 譚・豬玖ッ募ョ�噪螳樣刔邀サ蝙九よッ丈クェ `interface {}` 蜿倬㍼蝨ィ蜀�ュ倅クュ蜊�謐ョ荳、荳ェ蟄鈴柄�壻ク荳ェ逕ィ譚・蟄伜お螳�桁蜷ォ逧�アサ蝙具シ悟嘗荳荳ェ逕ィ譚・蟄伜お螳�桁蜷ォ逧�焚謐ョ謌冶�欠蜷第焚謐ョ逧�欠髓医�
|
|
|
|
|
|
-タ�ラモ emptyint_switch.go ヒオテ�ヒソユスモソレヤレ `type-swtich` ヨミチェコマ `lambda` コッハ�オトモテキィ」コ
|
|
|
+萓句ュ� emptyint_switch.go 隸エ譏惹コ�ゥコ謗・蜿」蝨ィ `type-swtich` 荳ュ閨泌粋 `lambda` 蜃ス謨ー逧�畑豕包シ�
|
|
|
|
|
|
```go
|
|
|
package main
|
|
|
@@ -101,21 +101,21 @@ func main() {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-ハ莎�コ
|
|
|
+霎灘���
|
|
|
|
|
|
any hello is a special String!
|
|
|
|
|
|
-**チキマー 11.9** simple_interface3.go」コ
|
|
|
+**扈�ケ� 11.9** simple_interface3.go��
|
|
|
|
|
|
-シフミ� チキマー11.2」ャヤレヒ�ミフ晴モメサク� `gI` コッハ�」ャヒ�サヤルスモハワ `Simpler` タ獎ヘオトイホハ�」ャカ�ヌスモハワメサク�ユスモソレイホハ�。」ネサコ�ィケ�タ獎ヘカマムヤナミカマイホハ�ハヌキ�ヌ `Simpler` タ獎ヘ。」ラ鋓�レ `main` ハケモテ `gI` ネ。エ� `fI` コッハ�イ「オ�テヒ�」ネキア」ト羞トエ惲�羯サーイネォ。」
|
|
|
+扈ァ扈ュ 扈�ケ�11.2�悟惠螳�クュ豺サ蜉�荳荳ェ `gI` 蜃ス謨ー�悟ョ�ク榊�謗・蜿� `Simpler` 邀サ蝙狗噪蜿よ焚�瑚梧弍謗・蜿嶺ク荳ェ遨コ謗・蜿」蜿よ焚縲ら┯蜷朱夊ソ�アサ蝙区妙險蛻、譁ュ蜿よ焚譏ッ蜷ヲ譏ッ `Simpler` 邀サ蝙九よ怙蜷主惠 `main` 菴ソ逕ィ `gI` 蜿紋サ」 `fI` 蜃ス謨ー蟷カ隹�畑螳�ら。ョ菫昜ス�逧�サ」遐∬カウ螟溷ョ牙�縲�
|
|
|
|
|
|
-## 11.9.2 ケケスィヘィモテタ獎ヘサ��ャイサヘャタ獎ヘア菽ソオトハ�ラ�
|
|
|
+## 11.9.2 譫�サコ騾夂畑邀サ蝙区�蛹�性荳榊酔邀サ蝙句序驥冗噪謨ー扈�
|
|
|
|
|
|
-ヤレ 7.6.6 ヨミホメテヌソエオスチヒトワアサヒムヒ�ヘナナミ�ト `int` ハ�ラ鬘「`float` ハ�ラ鰓ヤシー `string` ハ�ラ鬟ャトヌテエカヤモレニ萢釥獎ヘオトハ�ラ鯑リ」ャハヌイサハヌホメテヌアリミ�テラヤシコア犁フハオマヨヒ�ヌ」ソ
|
|
|
+蝨ィ 7.6.6 荳ュ謌台サャ逵句芦莠��陲ォ謳懃エ「蜥梧賜蠎冗噪 `int` 謨ー扈�~float` 謨ー扈�サ・蜿� `string` 謨ー扈�シ碁ぅ荵亥ッケ莠主�莉也アサ蝙狗噪謨ー扈�造�梧弍荳肴弍謌台サャ蠢�。サ蠕苓�蟾ア郛也ィ句ョ樒鴫螳�サャ��
|
|
|
|
|
|
-マヨヤレホメテヌヨェオタクテヤ�エラ�ヒ」ャセヘハヌヘィケ�ハケモテソユスモソレ。」ネテホメテヌク�ユスモソレカィメサク��釥獎ヘ `Element`」コ`type Element interface{}`
|
|
|
+邇ー蝨ィ謌台サャ遏・驕楢ッ・諤惹ケ亥★莠�シ悟ーア譏ッ騾夊ソ�スソ逕ィ遨コ謗・蜿」縲りョゥ謌台サャ扈咏ゥコ謗・蜿」螳壻ク荳ェ蛻ォ蜷咲アサ蝙� `Element`�啻type Element interface{}`
|
|
|
|
|
|
-ネサコ�ィメ袵サク�ンニ�獎ヘオトス盪ケフ� `Vector`」ャヒ��ャメサク� `Element` タ獎ヘヤェヒリオトヌミニャ」コ
|
|
|
+辟カ蜷主ョ壻ケ我ク荳ェ螳ケ蝎ィ邀サ蝙狗噪扈捺桷菴� `Vector`�悟ョ�桁蜷ォ荳荳ェ `Element` 邀サ蝙句�邏�逧��迚�シ�
|
|
|
|
|
|
```go
|
|
|
type Vector struct {
|
|
|
@@ -123,7 +123,7 @@ type Vector struct {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-`Vector` タ�ワキナネホコホタ獎ヘオトア菽ソ」ャメ�ェネホコホタ獎ヘカシハオマヨチヒソユスモソレ」ャハオシハノマ `Vector` タ�ナオトテソク�ェヒリソノメヤハヌイサヘャタ獎ヘオトア菽ソ。」ホメテヌホェヒ�ィメ袵サク� `At()` キスキィモテモレキオサリオレ `i` ク�ェヒリ」コ
|
|
|
+`Vector` 驥瑚�謾セ莉サ菴慕アサ蝙狗噪蜿倬㍼�悟屏荳コ莉サ菴慕アサ蝙矩�螳樒鴫莠�ゥコ謗・蜿」�悟ョ樣刔荳� `Vector` 驥梧叛逧�ッ丈クェ蜈�エ�蜿ッ莉・譏ッ荳榊酔邀サ蝙狗噪蜿倬㍼縲よ�莉ャ荳コ螳�ョ壻ケ我ク荳ェ `At()` 譁ケ豕慕畑莠手ソ泌屓隨ャ `i` 荳ェ蜈�エ���
|
|
|
|
|
|
```go
|
|
|
func (p *Vector) At(i int) Element {
|
|
|
@@ -131,7 +131,7 @@ func (p *Vector) At(i int) Element {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-ヤルカィメサク� `Set()` キスキィモテモレノ靹テオレ `i` ク�ェヒリオトヨオ」コ
|
|
|
+蜀榊ョ壻ク荳ェ `Set()` 譁ケ豕慕畑莠手ョセ鄂ョ隨ャ `i` 荳ェ蜈�エ�逧�シ��
|
|
|
|
|
|
```go
|
|
|
func (p *Vector) Set(i int, e Element) {
|
|
|
@@ -139,26 +139,26 @@ func (p *Vector) Set(i int, e Element) {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-`Vector` ヨミエ豢「オトヒ�ミヤェヒリカシハヌ `Element` タ獎ヘ」ャメェオテオスヒ�ヌオトヤュハシタ獎ヘ」ィunboxing」コイ�茱ゥミ靨ェモテオスタ獎ヘカマムヤ。」TODO」コThe compiler rejects assertions guaranteed to fail」ャタ獎ヘカマムヤラワハヌヤレヤヒミミハアイナヨエミミ」ャメ�ヒヒ�盍揵昤ヒミミハアエ﨔�」
|
|
|
+`Vector` 荳ュ蟄伜お逧�園譛牙�邏�驛ス譏ッ `Element` 邀サ蝙具シ瑚ヲ∝セ怜芦螳�サャ逧�次蟋狗アサ蝙具シ�nboxing�壽究邂ア�蛾怙隕∫畑蛻ー邀サ蝙区妙險縲5ODO�啜he compiler rejects assertions guaranteed to fail�檎アサ蝙区妙險諤サ譏ッ蝨ィ霑占。梧慮謇肴鴬陦鯉シ悟屏豁、螳�シ壻コァ逕溯ソ占。梧慮髞呵ッッ縲�
|
|
|
|
|
|
-**チキマー 11.10** min_interface.go / minmain.go」コ
|
|
|
+**扈�ケ� 11.10** min_interface.go / minmain.go��
|
|
|
|
|
|
-キツユユ11.7ヨミソェキ「オト `Sorter` スモソレ」ャエエスィメサク� `Miner` スモソレイ「ハオマヨメサミゥアリメェオトイルラ�」コッハ� `Min` スモハワメサク� `Miner` タ獎ヘア菽ソオトシッコマ」ャネサコ�ニヒ羇「キオサリシッコマヨミラ隯。オトヤェヒリ。」
|
|
|
+莉ソ辣ァ11.7荳ュ蠑蜿醍噪 `Sorter` 謗・蜿」�悟�蟒コ荳荳ェ `Miner` 謗・蜿」蟷カ螳樒鴫荳莠帛ソ�ヲ∫噪謫堺ス懊ょ�謨ー `Min` 謗・蜿嶺ク荳ェ `Miner` 邀サ蝙句序驥冗噪髮�粋�檎┯蜷手ョ。邂怜ケカ霑泌屓髮�粋荳ュ譛蟆冗噪蜈�エ�縲�
|
|
|
|
|
|
-## 11.9.3 クエヨニハ�センヌミニャヨチソユスモソレヌミニャ
|
|
|
+## 11.9.3 螟榊宛謨ー謐ョ蛻�援閾ウ遨コ謗・蜿」蛻�援
|
|
|
|
|
|
-シルノ霪耨ミメサク� `myType` タ獎ヘオトハ�センヌミニャ」ャト耘�ォヌミニャヨミオトハ�センクエヨニオスメサク�ユスモソレヌミニャヨミ」ャタ猴ニ」コ
|
|
|
+蛛�ョセ菴�譛我ク荳ェ `myType` 邀サ蝙狗噪謨ー謐ョ蛻�援�御ス�諠ウ蟆��迚�クュ逧�焚謐ョ螟榊宛蛻ー荳荳ェ遨コ謗・蜿」蛻�援荳ュ�檎アサ莨シ��
|
|
|
|
|
|
```go
|
|
|
var dataSlice []myType = FuncReturnSlice()
|
|
|
var interfaceSlice []interface{} = dataSlice
|
|
|
```
|
|
|
|
|
|
-ソノマァイサトワユ篥エラ�ャア默�アサ盖�惞コ`cannot use dataSlice (type []myType) as type []interface { } in assignment`
|
|
|
+蜿ッ諠應ク崎�霑吩ケ亥★�檎シ冶ッ第慮莨壼�髞呻シ啻cannot use dataSlice (type []myType) as type []interface { } in assignment`
|
|
|
|
|
|
-ヤュメ�ヌヒ�ヌチゥヤレトレエ贍ミオトイシセヨハヌイサメサム�ト」ィイホソシ[http://golang.org/doc/go_spec.html](http://golang.org/doc/go_spec.html)」ゥ。」
|
|
|
+蜴溷屏譏ッ螳�サャ菫ゥ蝨ィ蜀�ュ倅クュ逧�ク�ア譏ッ荳堺ク譬キ逧�シ亥盾閠ゼhttp://golang.org/doc/go_spec.html](http://golang.org/doc/go_spec.html)�峨�
|
|
|
|
|
|
-アリミ�ケモテ `for-range` モ�菎エメサク�サク�ヤハスオリクエヨニ」コ
|
|
|
+蠢�。サ菴ソ逕ィ `for-range` 隸ュ蜿・譚・荳荳ェ荳荳ェ譏セ蠑丞慍螟榊宛��
|
|
|
|
|
|
```go
|
|
|
var dataSlice []myType = FuncReturnSlice()
|
|
|
@@ -168,11 +168,11 @@ for ix, d := range dataSlice {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-## 11.9.4 ヘィモテタ獎ヘオトスレオ飜�センス盪ケ
|
|
|
+## 11.9.4 騾夂畑邀サ蝙狗噪闃らせ謨ー謐ョ扈捺桷
|
|
|
|
|
|
-ヤレ10.1ヨミホメテヌモ�スチヒヨ鏸鄰ミア晗ヘハ�簷�トハ�センス盪ケ」ャヤレヒ�ヌオトカィメ袒ミハケモテチヒメサヨヨスミスレオ羞トオンケ鮨盪ケフ蠡獎ヘ」ャスレオ羃�ャメサク�ウヨヨタ獎ヘオトハ�センラヨカホ。」マヨヤレソノメヤハケモテソユスモソレラ�ェハ�センラヨカホオトタ獎ヘ」ャユ簷�メテヌセヘトワミエウ�ィモテオトエ惲�」マツテ賁ヌハオマヨメサク��イ賁�トイソキヨエ惲�コヘィモテカィメ蝪「モテモレエエスィソユスレオ羞ト `NewNode` キスキィ」ャシーノ靹テハ�センオト `SetData` キスキィ.
|
|
|
+蝨ィ10.1荳ュ謌台サャ驕�芦莠�ック螯ょ�陦ィ蜥梧�題ソ呎�キ逧�焚謐ョ扈捺桷�悟惠螳�サャ逧�ョ壻ケ我クュ菴ソ逕ィ莠�ク遘榊将闃らせ逧�貞ス堤サ捺桷菴鍋アサ蝙具シ瑚鰍轤ケ蛹�性荳荳ェ譟千ァ咲アサ蝙狗噪謨ー謐ョ蟄玲ョオ縲ら鴫蝨ィ蜿ッ莉・菴ソ逕ィ遨コ謗・蜿」菴應クコ謨ー謐ョ蟄玲ョオ逧�アサ蝙具シ瑚ソ呎�キ謌台サャ蟆ア閭ス蜀吝�騾夂畑逧�サ」遐√ゆク矩擇譏ッ螳樒鴫荳荳ェ莠悟初譬醍噪驛ィ蛻�サ」遐�シ夐夂畑螳壻ケ峨∫畑莠主�蟒コ遨コ闃らせ逧� `NewNode` 譁ケ豕包シ悟所隶セ鄂ョ謨ー謐ョ逧� `SetData` 譁ケ豕�.
|
|
|
|
|
|
-ハセタ� 11.10 node_structures.go:
|
|
|
+遉コ萓� 11.10 node_structures.go:
|
|
|
|
|
|
```go
|
|
|
package main
|
|
|
@@ -207,11 +207,11 @@ func main() {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-## 11.9.5 スモソレオススモソレ
|
|
|
+## 11.9.5 謗・蜿」蛻ー謗・蜿」
|
|
|
|
|
|
-メサク�モソレオトヨオソノメヤクウヨオク�橫サク�モソレア菽ソ」ャヨサメェオライ翅獎ヘハオマヨチヒアリメェオトキスキィ。」ユ篋�ェササハヌヤレヤヒミミハアス�ミシ�魴ト」ャラェササハァーワサ盞シヨツメサク�ヒミミハアエ﨔�コユ簗ヌ 'Go' モ�ヤカッフャオトメサテ譽ャソノメヤトヌヒ�ヘ `Ruby` コヘ `Python` ユ簟ゥカッフャモ�ヤマ牾ネスマ。」
|
|
|
+荳荳ェ謗・蜿」逧�シ蜿ッ莉・襍句シ扈吝嘗荳荳ェ謗・蜿」蜿倬㍼�悟宵隕∝コ募アらアサ蝙句ョ樒鴫莠�ソ�ヲ∫噪譁ケ豕輔りソ吩クェ霓ャ謐「譏ッ蝨ィ霑占。梧慮霑幄。梧」譟・逧�シ瑚スャ謐「螟ア雍・莨壼ッシ閾エ荳荳ェ霑占。梧慮髞呵ッッ�夊ソ呎弍 'Go' 隸ュ險蜉ィ諤∫噪荳髱「�悟庄莉・驍」螳�柱 `Ruby` 蜥� `Python` 霑吩コ帛勘諤∬ッュ險逶ク豈碑セ��
|
|
|
|
|
|
-シルカィ」コ
|
|
|
+蛛�ョ夲シ�
|
|
|
|
|
|
```go
|
|
|
var ai AbsInterface // declares method Abs()
|
|
|
@@ -223,18 +223,18 @@ pp := new(Point) // say *Point implements Abs, Sqr
|
|
|
var empty interface{}
|
|
|
```
|
|
|
|
|
|
-トヌテエマツテ豬トモ�莠ヘタ獎ヘカマムヤハヌコマキィオト」コ
|
|
|
+驍」荵井ク矩擇逧�ッュ蜿・蜥檎アサ蝙区妙險譏ッ蜷域ウ慕噪��
|
|
|
|
|
|
```go
|
|
|
empty = pp // everything satisfies empty
|
|
|
ai = empty.(AbsInterface) // underlying value pp implements Abs()
|
|
|
// (runtime failure otherwise)
|
|
|
-si = ai.(SqrInterface) // *Point has Sqr() even though AbsInterface doesn。ッt
|
|
|
+si = ai.(SqrInterface) // *Point has Sqr() even though AbsInterface doesn窶冲
|
|
|
empty = si // *Point implements empty set
|
|
|
// Note: statically checkable so type assertion not necessary.
|
|
|
```
|
|
|
|
|
|
-マツテ賁ヌコッハ�オ�テオトメサク��ラモ」コ
|
|
|
+荳矩擇譏ッ蜃ス謨ー隹�畑逧�ク荳ェ萓句ュ撰シ�
|
|
|
|
|
|
```go
|
|
|
type myPrintInterface interface {
|
|
|
@@ -246,10 +246,10 @@ func f3(x myInterface) {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-`x` ラェササホェ `myPrintInterface` タ獎ヘハヌヘ�ォカッフャオト」コヨサメェ `x` オトオライ翅獎ヘ」ィカッフャタ獎ヘ」ゥカィメ蠱ヒ `print` キスキィユ篋��テセヘソノメヤユ�ウ」ヤヒミミ。」
|
|
|
+`x` 霓ャ謐「荳コ `myPrintInterface` 邀サ蝙区弍螳悟�蜉ィ諤∫噪�壼宵隕� `x` 逧�コ募アらアサ蝙具シ亥勘諤∫アサ蝙具シ牙ョ壻ケ我コ� `print` 譁ケ豕戊ソ吩クェ隹�畑蟆ア蜿ッ莉・豁」蟶ク霑占。後�
|
|
|
|
|
|
-## チエスモ
|
|
|
+## 體セ謗・
|
|
|
|
|
|
-- [トソツシ](directory.md)
|
|
|
-- ノマメサスレ」コ[オレカ�ク��ラモ」コカチコヘミエ](11.8.md)
|
|
|
-- マツメサスレ」コ[キエノ莢�(11.10.md)
|
|
|
+- [逶ョ蠖評(directory.md)
|
|
|
+- 荳贋ク闃ゑシ喙隨ャ莠御クェ萓句ュ撰シ夊ッサ蜥悟�](11.8.md)
|
|
|
+- 荳倶ク闃ゑシ喙蜿榊ー�桁](11.10.md)
|