「Go/関数」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
213 行
 
== ジェネリック関数 ==
Go 1.18 (2022年2月リリース予定)では、ジェネリック関数が追加されることが決まっ計画されています<ref>{{cite book
| url=https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md
| title=Type Parameters Proposal
235 行
 
=== 数値型に限定したジェネリック関数 ===
;[https://go2goplay.golang.org/p/B584plPsjrGQpFZmlqSjE1 数値型に限定したジェネリック関数]:<syntaxhighlight lang="go" highlight="5-7,9,1817,1918"line>
package main
 
244 行
}
 
func sum[T numeric](s ...T) (n T) {
var n T = 0
for _, v := range s {
n += v
}
return n
}
 
297 ⟶ 296行目:
 
=== interface{}も any に合致する ===
;[https://go2goplay.golang.org/p/XL217FrW9kMiiBnj9IUBFX interface{}も any に合致する]:<syntaxhighlight lang="go" highlight="23"line>
package main
 
308 ⟶ 307行目:
}
 
func (s *Stack[T]) Pop() (value T, errok bool) {
if len(*s) == 0 {
return
var zero T
return zero, false
}
rvalue := (*s)[len(*s)-1]
*s = (*s)[:len(*s)-1]
ok = true
// fmt.Println(r, *s)
return r, true
}