leonardchaocc / Application

0 stars 0 forks source link

Go语言基本概念 #18

Open leonardchaocc opened 4 years ago

leonardchaocc commented 4 years ago

Go语言,简称Golang——区块链(简称BT,称分布式账本技术,特点是去中心化,公开透明,所有人都能参与)研发、Go服务器(数据处理(排序推荐搜索),处理高并发(流量支撑,负载均衡,缓存容错,分流))/游戏软件——Golang分布式/云计算(内容分发网络)软件工程师

程序:完成某功能的指令的集合。

Golang特点:变量名在类型前,语句不需要分号 保证既能达到静态编译语言(C)的安全和性能,有达到动态语言(Python)开发维护的高效率:Go=C+Python。 a. 从C中继承表达式语法、控制结构、基础数据类型、参数传值、指针及编译执行方式和弱化指针 b. 引入包概念,用于组织程序结构,所有Golang的文件都要归属于一个包,不能单独存在 c. 垃圾回收机制,内存自动回收,不需进行管理//优化C,避免内存泄漏 d. 天然并发:从语言层面支持开发,实现简单;goroutine,轻量级线程,可以实现大并发,高效利用多核;基于CPS并发模型实现 e. 吸收管道通信机制,形成Golang特有的channel,通过channel实现goroutine之间的通信//进程间通信 f. 函数可以返回多个值 g. defer,slice

leonardchaocc commented 4 years ago

Go语言数据类型: 查看数据类型占用空间 import unsafe之后,调用unsafe.Sizeof() 基本数据类型: 1、数值型:分为整数类型:分有符号和无符号,默认声明为int,遵守保小不保大,即在正确运行的情况下尽可能用小的。和浮点类型:float32&float64 2、字符型:无字符型(char),使用byte保存单个字母字符 3、布尔型bool:只能取true和false,不能1 -1,默认值为false 4、字符串string:归结于基本数据类型,go中字符串赋值之后不可变(类似Python)若想将一大段文字以字符串形式存储,可用波浪线下的反引号进行包含。字符串拼接操作太长需要分行时,须将+作为每行的结尾 派生/复杂数据类型: 1、指针 2、数组 3、结构体:没有class用struct替代 4、管道:处理多并发 5、函数 6、切片:类似动态数组 7、接口 8、map:类似集合set

数据类型的转换:显式转换,不能自动转换,通常将变量括起来再在前面加上目标类型 大转小时不会保存,结果会按溢出处理。 基本与string的转换: 1、fmt.Sprintf("%参数",表达式)//参数和表达式的数据类型相匹配,返回转换后的字符串e.g. str=fmt.Sprintf("%d",num1) 2、使用strconv包的函数 string转基本:要确保能够转成有效的类型 1、使用strconv包的函数