go lang に置ける注意点
A Tour of Goをやってるので、その中の必要な型宣言とかメソッド周りで必要なところをまとめた記事です。golang初心者なので、突っ込んでください!
変数型宣言
いつものvariableのvarを使った宣言をしていきます。
var number int
var letters string
ってするのが基本形
- 初期化子を利用した簡単な型宣言もできる
var number = 1
var letters = "This is a String"
- 連続して同じ型を宣言する場合はまとめることもできる。
var number, numberTwo int
- 複数型を一括でも宣言できる。初期化子を利用した方法で
var number, letters, isPython = 1 , "This is a String", false
えらい便利。すごい便利。素直にすごい。
- メソッド内限定だが(僕はそう理解した)、以下のような暗黙の型宣言もできるらしい。
func someMethod(){
i := 3
// ゴリラやんけ
}
これ便利そう。varでわざわざ宣言する必要がないのは覚えとくと可読性の面でも楽そうだけど、型処理とかでめんどくさいことならないのかな。。。
型の種類
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 の別名
rune // int32 の別名
float32 float64
complex64 complex128 //複素数とか虚数を許すすごいやつ
ほうほう。runeってこれまた古代魔法が使えそうな。。。
int, uint, uintptrの三種類は完全にそのシステムが64bitか32bitかによってその型特性?が変わると。
まぁ当たり前か。
定数宣言
これが結構特殊な感じがする。constantのconstを使っての宣言をする。
- constを使う場合ではメソッド内での
:=
をさせてくれない。 - varよりも数値の精度が高い。
- 使える型はCharacter,String,Numeric,Booleanの四つのみ
この3点は覚えとく必要があるですね。
型宣言の特性
Goで最初にあげたように初期値を入れずに宣言をしたものは基本的に、No Value = nilにはならず、
Zero Value = 0もしくは空のStringになる。
var letters string //letters = ""
var number int //number = 0
var isPython bool //isPython = false
var decimals float32 //decimals = 0
型変換(Casting)
わりかし簡単っていうのが第一印象
var number = 1
var decimals = float(number) //decimals = 1
っていう形になる。
じゃあintをstringにキャストできるかって言われると、できない。
var number = 1
var letters = string(number) //letters = ""
#メソッド
Swiftが長いので正直めちゃくちゃわかりやすかった。
func swap(x,y string) (fullScript string){
fullScript = y + x
return fullScript
}
こう言う形で戻り値、引数宣言ができる。
もちろん暗黙的にReturnさせれる
func swap(x,y string) (fullScript string){
fullScript = y + x
return
}
引数がない場合に関しては、
func swap(){
total := x + y
}
ってする。まぁわかる。