Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
_Fighter
Learngo
提交
d4e2500b
L
Learngo
项目概览
_Fighter
/
Learngo
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
11
Wiki
分析
仓库
DevOps
项目成员
Pages
L
Learngo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
11
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d4e2500b
编写于
12月 06, 2021
作者:
_Fighter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021年12月5日
上级
5993491e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
142 addition
and
0 deletion
+142
-0
arrays.go
arrays.go
+59
-0
func.go
func.go
+83
-0
未找到文件。
arrays.go
0 → 100644
浏览文件 @
d4e2500b
package
main
import
"fmt"
func
arrDefouat
()
{
var
arr1
[
3
]
int
// 可以不给初值
arr2
:=
[
4
]
int
{
1
,
2
,
3
,
4
}
// := 必须给赋值
arr3
:=
[
...
]
int
{
4
,
3
,
4
,
4
,
5
,
6
}
// 字符串数组
var
s1
=
[
2
]
string
{
"hello"
,
"world"
}
var
s2
=
[
...
]
string
{
"你好"
,
"世界"
}
var
s3
=
[
...
]
string
{
1
:
"世界"
,
0
:
"你好"
}
s4
:=
[
...
]
string
{
"你好"
,
"世界"
}
var
grid
[
5
][
4
]
int
fmt
.
Println
(
arr1
,
arr2
,
arr3
)
fmt
.
Println
(
grid
)
fmt
.
Println
(
s1
,
s2
,
s3
,
s4
)
//
for
i
:=
0
;
i
<
len
(
arr3
);
i
++
{
fmt
.
Println
(
arr3
[
i
])
}
//只要下标
for
i
:=
range
arr3
{
fmt
.
Println
(
arr3
[
i
])
}
// 下标 与 值
for
i
,
v
:=
range
arr3
{
fmt
.
Println
(
i
,
v
)
}
// 只要值
for
_
,
v
:=
range
arr3
{
fmt
.
Println
(
v
)
}
}
//[4]int 为值类型
func
printArray
(
arr
*
[
4
]
int
)
{
arr
[
0
]
=
99
for
i
,
v
:=
range
arr
{
fmt
.
Println
(
i
,
v
)
}
}
func
main
()
{
arrDefouat
()
var
arr1
[
4
]
int
// 可以不给初值
arr2
:=
[
4
]
int
{
1
,
2
,
3
,
4
}
// := 必须给赋值
arr3
:=
[
...
]
int
{
4
,
3
,
4
,
4
}
printArray
(
&
arr1
)
printArray
(
&
arr2
)
printArray
(
&
arr3
)
fmt
.
Println
(
arr1
,
arr2
,
arr3
)
}
func.go
0 → 100644
浏览文件 @
d4e2500b
package
main
import
(
"fmt"
"reflect"
"runtime"
)
/* 返回值 ,可把错误直接返回,不让程序中断执行 */
func
eval
(
a
,
b
int
,
op
string
)
(
int
,
error
)
{
switch
op
{
case
"+"
:
return
a
+
b
,
nil
case
"-"
:
return
a
-
b
,
nil
case
"*"
:
return
a
*
b
,
nil
case
"/"
:
// 返回多个值时,可用下划线 _ 代替不需要的返回值
q
,
_
:=
div
(
78
,
9
)
return
q
,
nil
default
:
// 程序出错,中断执行
//panic(" unsupported opertion:"+op)
return
0
,
fmt
.
Errorf
(
" unsupported opertion:%s"
,
op
)
}
}
/*返回两个值*/
func
div
(
a
,
b
int
)
(
q
,
r
int
)
{
return
a
/
b
,
a
%
b
}
/* op 为入的函数*/
func
apply
(
op
func
(
int
,
int
,
string
)
(
int
,
error
),
a
,
b
int
,
o
string
)
int
{
// 获取被调用的函数名
p
:=
reflect
.
ValueOf
(
op
)
.
Pointer
()
// 获取函数指针
opName
:=
runtime
.
FuncForPC
(
p
)
.
Name
()
fmt
.
Printf
(
" calling function %s with args (%d,%d)"
,
opName
,
a
,
b
)
if
result
,
err
:=
op
(
a
,
b
,
o
);
err
!=
nil
{
return
0
}
else
{
return
result
}
}
func
swap
(
a
,
b
*
int
)
{
*
b
,
*
a
=
*
a
,
*
b
}
func
main
()
{
if
result
,
error
:=
eval
(
3
,
6
,
"x"
);
error
!=
nil
{
fmt
.
Printf
(
"error:%s"
,
error
)
}
else
{
fmt
.
Println
(
result
)
}
fmt
.
Println
(
eval
(
0
,
545
,
"/"
))
fmt
.
Println
(
div
(
15
,
9
))
// 第一种调用方式
fmt
.
Println
(
apply
(
eval
,
3
,
4
,
"+"
))
//匿名函数方式
fmt
.
Println
(
apply
(
func
(
a
int
,
b
int
,
o
string
)
(
int
,
error
)
{
if
a
==
0
{
return
0
,
fmt
.
Errorf
(
"xxxxxxxx %s"
,
o
)
}
return
a
+
b
,
nil
},
100
,
90
,
"+"
,
),
)
a
,
b
:=
10
,
20
swap
(
&
a
,
&
b
)
fmt
.
Println
(
a
,
b
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录