数字转字符串
strconv
.Itoa(n
%2)
一行行读文件
func printFile
() {
file
, err
:= os
.Open("./learn/abc.txt")
if err
!=nil {
panic(err
)
}
scanner
:= bufio
.NewScanner(file
)
for scanner
.Scan() {
fmt
.Println(scanner
.Text())
}
}
for 死循环
func forever() {
for {
fmt
.Println("abc")
}
}
函数多返回值
func eval(a
, b
int) (q
, r
int) {
q
= a
/ b
r
= a
% b
return
}
多个返回值取一个
q
, _ := eval(13, 3)
fmt
.Println(q
)
下划线占位符 ?多返回值,一般 第二个返回值为错误
func div(a
, b
int, op
string) (int, error) {
switch op
{
case "+":
return a
+ b
, nil
case "-":
return a
- b
, nil
default:
return 0, fmt
.Errorf(
"This is error:%s", op
)
}
}
func main() {
if value
, err
:= div(4, 3, "/"); err
!= nil {
fmt
.Println("Err", err
)
} else {
fmt
.Println(value
)
}
}
获取函数名称,参数为函数
func apply(op
func(a
, b
int) int, a
, b
int) int {
p
:= reflect
.ValueOf(op
).Pointer()
opName
:= runtime
.FuncForPC(p
).Name()
fmt
.Println("This is function name:" + opName
)
return op(a
, b
)
}
func power(a
, b
int) int {
return int(math
.Pow(float64(a
), float64(b
)))
}
函数名为:包名+函数名
闭包函数
fmt
.Println(apply(func(a
, b
int) int {
return int(math
.Pow(float64(a
), float64(b
)))
}, 3, 4))
可变参数列表
func sum(numbers
...int) int {
sumNum
:= 0
for i
:= range numbers
{
sumNum
+= numbers
[i
]
}
return sumNum
}
转载请注明原文地址: https://yun.8miu.com/read-113173.html