私はCの背景から来て、Cスタイルの配列を渡すとエラーが発生します。ゴランで参照渡しで配列を渡す
plzは他の人がコメントで述べたように
package main
import "fmt"
func f(a *int){
fmt.Println(a[1])
}
func main(){
var a [100]int
a[1]=100
f(a)
}
エラー :: は、 F
私はCの背景から来て、Cスタイルの配列を渡すとエラーが発生します。ゴランで参照渡しで配列を渡す
plzは他の人がコメントで述べたように
package main
import "fmt"
func f(a *int){
fmt.Println(a[1])
}
func main(){
var a [100]int
a[1]=100
f(a)
}
エラー :: は、 F
に引数に型* int型としてあなたを(タイプ[100] int)を使用することはできません助けておそらく配列ではなくスライスを使用したいと考えています。スライスはすでに参照渡しされているので、ポインタを指定する必要はありません。以下のmake
ステートメントは、(配列に裏打ちされた)スライスを作成します。以下のコードでは、私はそれを2の長さと、関数の引数として配列の代わりにスライスを使用する必要がありますインデックス1
import (
"fmt"
)
func f(a []int) {
fmt.Println(a[1])
}
func main() {
a := make([]int, 2, 100)
a[1] = 100
f(a)
}
に割り当てるのあなたの目標を満たすために100の容量を与えました。 例:
func p(a int){
fmt.Println(a)
}
func main() {
var a = make([]int,2,10) //2 is length, 10 is capacity
a[0] = 10
p(a[0])
}
配列は値型、スライスは参照型です。あなたはより多くを見ることができますhttps://blog.golang.org/go-slices-usage-and-internals
それはあなたを助けてくれる!
Goチュートリアルでこれをカバーします。 –
配列とポインタは、Goで同じタイプまたは変換可能なタイプではないだけです。あなたが本当に望むのは、スライスです。スライスは、配列のビューのようなものです。 – hobbs
試してみてください:https://gobyexample.com/ –