获得徽章 0
- Go语言程序开发的注意事项\n1) Go源文件以“go”为扩展名。\n\n2)Go应用程序的执行入口是mainO函数。这个是和其它编程语言(比如java/c)\n\n3)Go语言严格区分大小写。\n\n4) Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang 的简洁性。\n\n5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错\n\n6)go语言定义的变量或者import的包如果没有使用到,代码不能编译通过。\n\n7)大括号都是成对出现的,缺一不可展开评论点赞
- 1、从一个map对象中根据key获取值。其中map的通用类型可以定义为:map[string]interface{}
前提条件存在一个上述类型的map定义
var m map[string]interface{} = make(map[string]interface{})
可以有两种方式来获取对象
(1). 方法一
value, ok := m[key]
(2). 方法二
value := m[key]
问题:value的类型为interface{},可以为值类型或指针类型,如果给定的key在map中不存在,对于不同value类型的结果会是怎样的?
(1). 如果是值类型,如果给定的key不存在,从map获取值后,value的值为
string类型,value为空串
数值类型,value为0
结构体类型,value为结构体的默认值,结构体中包含的每一种类型的值参考上述规则
展开评论点赞 - 垃圾回收:Go语言使用了垃圾回收机制,可以自动管理动态分配的内存。这意味着开发者可以更专注于业务逻辑,而无需过多关注内存管理,减少了内存泄漏等问题的发生。
开发效率高:Go语言提供了丰富的标准库,涵盖了许多常用的功能,例如网络、文件处理、加密等。同时,Go语言还有一个活跃的开源社区,有大量的第三方库和工具可以使用,可以加快开发速度。
良好的可读性和可维护性:Go语言的语法设计注重可读性和一致性,代码风格规范统一,使得团队协作变得更加方便。此外,Go语言还倡导编写简洁、清晰的代码,注重代码的可维护性。展开评论点赞 - 学习Go语言是一个令人愉快且富有挑战性的过程。以下是一些学习Go语言的心得体会:
简洁而高效:Go语言的语法设计简洁明了,易于理解和上手。它剥离了许多其他语言中常见的复杂特性,减少了学习曲线。同时,Go语言在性能方面表现出色,具有出色的并发处理能力和高效的内存管理,使得开发高性能的应用程序变得更加容易。
并发编程的支持:Go语言内置了强大的并发编程支持,通过goroutine和channel的机制,可以轻松地编写并发程序。这种并发模型的设计使得编写高效、可靠的并发程序变得相对简单。
垃圾回收:Go语言使用了垃圾回收机制,可以自动管理动态分配的内存。这意味着开发者可以更专注于业务逻辑,而无需过多关注内存管理,减少了内存泄漏等问题的发生。
开发效率高:Go语言提供了丰富的标准库,涵盖了许多常用的功能,例如网络、文件处理、加密等。同时,Go语言还有一个活跃的开源社区,有大量的第三方库和工具可以使用,可以加快开发速度。
良好的可读性和可维护性:Go语言的语法设计注重可读性和一致性,代码风格规范统一,使得团队协作变得更加方便。此外,Go语言还倡导编写简洁、清晰的代码,注重代码的可维护性。
跨平台支持:Go语言具有强大的跨平台能力,可以在多个操作系统上编译和运行,包括Windows、Linux、macOS等。
总的来说,学习Go语言是一项具有挑战性但非常值得的任务。它有着简洁高效的语法设计、强大的并发编程支持、良好的开发效率和可读性,以及跨平台的能力。因此,无论是初学者还是有经验的开发人员,都可以通过学习Go语言来提升自己的编程技能。
展开评论点赞 - 主线程结束,协程也会结束
浏览器中主线程使用死循环,它跑去协程时,主协程同步往下走,可以输入验证码,不需等待发送的3秒,不会造成卡的感觉。给用户便捷的体验
协程 使用: go 函数名()
1.解决主线程结束,协程也结束的问题
waitGroup
wg.Add(n)几个协程函数 wg.done()n-1
wg.wait()告诉主线程等一下协程
2.解决获取协程函数返回值的问题
协程安全
CPU同时只能执行一个请求,时间近,请求同,CPU会认为是同一个请求,造成协程安全问题展开评论点赞 - 协程安全
CPU同时只能执行一个请求,时间近,请求同,CPU会认为是同一个请求,造成协程安全问题
制造一把锁,哪个协程函数先抢到谁先执行
获取协程函数返回值
声明切片,map全局变量
在函数中对该变量写入
同时对map写入,也可能会出现报错
用锁
锁只对最容易冲突的地方上
展开评论点赞 - map 相当于键值对,引用数据类型,1.默认值为nil,定义,创建空间,复制2.直接实例化
结构体转jason,变量名小写就不会被序列化前端,小驼峰,(小写开头),而小写开头不会被序列化,用于前端 jason反引号"-"也不会被序列化
位运算评论点赞 - 主线程结束,协程也会结束
浏览器中主线程使用死循环,它跑去协程时,主协程同步往下走,可以输入验证码,不需等待发送的3秒,不会造成卡的感觉。给用户便捷的体验
协程 使用: go 函数名()
1.解决主线程结束,协程也结束的问题
waitGroup
wg.Add(n)几个协程函数 wg.done()n-1
wg.wait()告诉主线程等一下协程
2.解决获取协程函数返回值的问题展开赞过评论1 - golang笔记3
主线程结束,协程也会结束
浏览器中主线程使用死循环,它跑去协程时,主协程同步往下走,可以输入验证码,不需等待发送的3秒,不会造成卡的感觉。给用户便捷的体验
协程 使用: go 函数名()
1.解决主线程结束,协程也结束的问题
waitGroup
wg.Add(n)几个协程函数 wg.done()n-1
wg.wait()告诉主线程等一下协程
2.解决获取协程函数返回值的问题
协程安全
CPU同时只能执行一个请求,时间近,请求同,CPU会认为是同一个请求,造成协程安全问题
制造一把锁,哪个协程函数先抢到谁先执行
获取协程函数返回值
声明切片,map全局变量
在函数中对该变量写入
同时对map写入,也可能会出现报错
用锁
锁只对最容易冲突的地方上
展开评论点赞