Golang语言--一些基础用法
时间:2022-05-05
本文章向大家介绍Golang语言--一些基础用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
range类似迭代器操作,返回 (索引, 值) 或 (键, 值)。其可以使用的对象包括string,array/slice,map,channel。其中string,array/slice返回的第一个value都是index,第二个value表示值;map返回第一个元素为key,第二个为value;channel中第一个值为元素的值。
举例如下:
func main() {
str := "abcdef"
for key, value := range str {
fmt.Printf("%d,%cn", key, value)
}
array := [3]int{0, 1, 2}//注意,针对array,range 会复制对象。
for i, v := range array {
if i == 0 {
// index、value 都是从复制品中取出。
// 在修改前,我们先修改原数组。
array[1], array[2] = 999, 999
fmt.Println(array)
// 确认修改有效,输出 [0, 999, 999]。
}
array[i] = v + 100 // 使用用复制品中取出的 value 修改原数组。
}
fmt.Println(array) // 输出 [100, 101, 102]。
//slice 为引用,对slice引用修改时直接在原来slice上进行修改,不用进行复制,建议改用用引用用类型,其底层数据不会被复制。
slice := []int{0, 1, 2}
for i, v := range slice {
if i == 0 {
// 在修改前,我们先修改原数组。
slice[1], slice[2] = 999, 999
fmt.Println(slice)
// 确认修改有效,输出 [0, 999, 999]。
}
slice[i] = v + 100
}
fmt.Println(slice) // 输出 [100 1099 1099]。
a := make(map[int]string, 3)
a[1] = "as"
a[2] = "c"
for key, value := range a {
fmt.Println(key, value)
}
b := make(chan int, 3)
b <- 1
b <- 2
go func() {
for element:= range b {
fmt.Println(element)
}
}()
time.Sleep(1 * time.Second)
}
函数:
函数定义 不支支持 嵌套 (nested)、重载 (overload) 和 默认参数 (default parameter)。 • 无无需声明原型。 • 支支持不定⻓长变参。 • 支支持多返回值。 • 支支持命名返回参数。 • 支支持匿名函数和闭包。
函数是第一一类对象,可作为参数传递。建议将复杂签名定义为函数类型,以便于阅读。
func test(fn func() int) int {
return fn()
}
<span style="background-color: rgb(255, 0, 0);">type FormatFunc func(s string, x, y int) string
// 定义函数类型。
func format(fn FormatFunc, s string, x, y int) string {
return fn(s, x, y)
}</span>
func main() {
s1 := test(func() int { return 100 })
// 直接将匿名函数当参数。
s2 := format(func(s string, x, y int) string {
return fmt.Sprintf(s, x, y)
}, "%d, %d", 10, 20)
println(s1, s2)
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法