Closed2
Goの勉強メモ
Goのimport文はパスを指定する。パスは <module>/<go.modからパッケージディレクトリへの相対パス>
の形式。
パッケージの使用はパッケージ名を指定する。
go.mod
がルートにあるとき、以下のようなコードのコンパイルが通る。
lib/lib2.go
package lib3
func Greet(name string) string {
return "Hello, " + name + "!"
}
main/main.go
package main
import (
"fmt"
"example.com/hello/lib"
)
func main() {
fmt.Println(lib3.Greet("world"))
}
自動フォーマットでimport文は以下のように明示的なエイリアスにフォーマットされる。
import (
"fmt"
lib3 "example.com/hello/lib"
)
参考になるページ: 【Go】import 書き方まとめ
スライスにappendすると裏にある配列の値にも影響が及ぶ。
package main
import (
"fmt"
)
func main() {
var sl [1]int
var sl2 = sl[0:0]
sl2 = append(sl2, 1)
fmt.Println(sl) // [1]
fmt.Println(sl2) // [1]
}
ただし、キャパシティを超える場合は影響せず、返り値のみがappendされたスライスになる。
package main
import (
"fmt"
)
func main() {
var sl [1]int
var sl2 = sl[0:0]
sl2 = append(sl2, 1)
fmt.Println(sl) // [1]
fmt.Println(sl2) // [1]
var sl3 = append(sl2, 2)
fmt.Println(sl2) // [1]
fmt.Println(sl3) // [1 2]
}
このスクラップは2024/03/30にクローズされました