golang中一些基础用法

golang中一些基础用法,第1张

概述range类似迭代器 *** 作,返回 (索引, 值) 或 (键, 值)。其可以使用的对象包括string,array/slice,map,channel。其中string,array/slice返回的第一个value都是index,第二个value表示值;map返回第一个元素为key,第二个为value;channel中第一个值为元素的值。 举例如下: func main() { str := "ab

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,%c\n",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,2}	for i,v := range slice {		if i == 0 {			// 在修改前,我们先修改原数组。			slice[1],slice[2] = 999,999			fmt.Println(slice)			// 确认修改有效,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 >type FormatFunc func(s string,x,y int) string// 定义函数类型。func format(fn FormatFunc,s string,y int) string {return fn(s,y)}</span>func main() {s1 := test(func() int { return 100 })// 直接将匿名函数当参数。s2 := format(func(s string,y int) string {return fmt.Sprintf(s,y)},"%d,%d",10,20)println(s1,s2)}
总结

以上是内存溢出为你收集整理的golang中一些基础用法全部内容,希望文章能够帮你解决golang中一些基础用法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1284615.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存