LoginSignup
0
0

[翻訳転載] Golang Tip #4: 配列をスライスにパースする

Posted at

はじめに

本記事は以下のツイートの翻訳転載です。

スライスを配列にパースする方法についての内容になります。
(記事タイトルは転載元Post(Parse an Array into a Slice)より)

配列をスライスにパースする

copy()を検討しますよね。

image

しかし、これは冗長です。

もしプロジェクトがGo 1.20にアップデートされていれば、より簡単にパースすることができます。
他の型のパース(例えばintからint32)と同様です。

image

古いバージョンを使用している場合は、Go 1.17でもワンライナーで解決できます。

image

個人的にはあまり使わないが、知っておくと確実に便利です。

おわりに

スライスを配列にパースしたいと思ったことが無いのですが、パフォーマンス面で有用なのでしょうか?

もしくは使用したい関数のシグネチャに合わせるため?

func main() {
	s := []int{1, 2, 3, 4, 5}

	// NG
	// cannot use s (variable of type []int) as [3]int value in argument to SomeFunc
	SomeFunc(s)

	// OK
	// arg0: 1, arg1: 2, arg2: 3
	SomeFunc([3]int(s[0:3]))
}

func SomeFunc(arg [3]int) {
	fmt.Printf("arg0: %v, arg1: %d, arg2: %d\n", arg[0], arg[1], arg[2])
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0