go 的基本数据类型和结构
// 变量命名方式
当用两个或两个以上的单词命名变量时,可以将除第一个单词以外的所有单词的首字母大写
package 命名方式
全部小写
不加 _
布尔类型:bool
整型:int8、byte、int16、int、uint、uintptr 等
浮点类型:float32、float64
复数类型:complex64、complex128
字符串:string
字符类型:rune
错误类型:error
Go 语言也支持以下这些复合类型:
指针(pointer)
数组(array) len() 数组长度
切片(slice) make(type, i, j) type为类型 i创建一个初始元素个数为i的数组切片 j预留 j 个元素的存储空间(容量为j) len()返回切片的长度 cap() 返回存储空间长度
字典(map)
通道(chan)
结构体(struct)
接口(interface)
time包
Now() 当前时间
Date(year, month, day, day ...)指定时间
(T time)Format("2006/1/2 15:04:05") 格式化
Parse() string -> time
file的操作
os.Stat 打开文件
file.Name() 文件名
file.Size() 大小
IsDir
数据类型: 整型及运算符
类型 长度(单位:字节) 说明 值范围 默认值
int8 1 带符号8位整型 -128~127 0
uint8 1 无符号8位整型,与 byte 类型等价 0~255 0
int16 2 带符号16位整型 -32768~32767 0
uint16 2 无符号16位整型 0~65535 0
int32 4 带符号32位整型,与 rune 类型等价 -2147483648~2147483647 0
uint32 4 无符号32位整型 0~4294967295 0
int64 8 带符号64位整型 -9223372036854775808~9223372036854775807 0
uint64 8 无符号64位整型 0~18446744073709551615 0
int 32位或64位 与具体平台相关 与具体平台相关 0
uint 32位或64位 与具体平台相关 与具体平台相关 0
uintptr 与对应指针相同 无符号整型,足以存储指针值的未解释位 32位平台下为4字节,64位平台下为8字节 0
注:++ 或 -- 只能出现在语句中,不能用于表达式,故不参与优先级判断。
go for 循环中 最好还是用 range
for i, ch := range str
自带的strconv 包
查看 接口 go doc strconv
常用的
string和int的转换
int转换为字符串:Itoa()
string转换为int:Atoi() func Atoi(s string) (int, error)
Parse类函数
Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
Format类函数
将给定类型格式化为string类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。
Append类函数
AppendTP类函数用于将TP转换成字符串后append到一个slice中:AppendBool()、AppendFloat()、AppendInt()、AppendUint()。
q := strconv.Quote("Hello, 世界") // 为字符串加引号
q := strconv.QuoteToASCII("Hello, 世界") // 将字符串转化为 ASCII 编码
字典类型的声明、初始化和基本使用
type Integer int
注意,这个时候 Integer 已经是一个新的类型了,这与 type Integer = int 不同,后者只是为 int 类型设置一个别名。
通过 channel 进行消息传递
通道看作是一个先进先出(FIFO)的队列,通道中的元素会严格按照发送顺序排列,继而按照排列顺序被接收,通道元素的发送和接收都可以通过 <- 操作符来实现,发送时元素值在右,通道变量在左
ch <- 1 // 表示把元素 1 发送到通道 ch
接收时通道变量在右,可以通过指定变量接收元素值
element := <-ch
defer
延迟函数调用的用法
func main(){
defer func() { fmt.Println("延迟调用") }()
fmt.Println("正常调用")
}
正常代码
延迟调用
func main(){
defer func() { fmt.Println("延迟调用1") }()
defer func() { fmt.Println("延迟调用2") }()
fmt.Println("正常代码")
}
正常代码
延迟调用2
延迟调用1
url: https://blog.csdn.net/java_code_net/article/details/94976939
存储类型
值类型: int float string bool array struct
引用类型:slice(切片) map
指向数组的指针 可以直接p[]
通道
ch := make(chan int) // 双向通道
ch2 := make(chan <- int) // 单向 只能写 不能读
ch3 := make(<- chan int) // 单向 只能读 不能写
go 的基本数据类型和结构的更多相关文章
- Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结 1. 数据结构( 树形结构,表形数据,对象结构 ) 1 2. 编程语言中对应的数据结构 jav ...
- Python3.7.4入门-0/1To Begin/数据类型与结构
0 To Begin //:向下取整除法 **:乘方 在交互模式下,上一次打印出来的表达式被赋值给变量 _ 如果不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即 ...
- hive笔记:复杂数据类型-map结构
map 结构 1. 语法:map(k1,v1,k2,v2,…) 操作类型:map ,map类型的数据可以通过'列名['key']的方式访问 案例: select deductions['Feder ...
- c++基础(一):数据类型和结构
1.map map<int, int> rankDict;//定义map rankDict[1] = 5; rankDict[2] = 6;//map赋值 int dictSize = r ...
- C语言-06复杂数据类型-04 结构体
结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...
- hive笔记:复杂数据类型-array结构
array 结构 (1)语法:array(val1,val2,val3,…) 操作类型:array array类型的数据可以通过'数组名[index]'的方式访问,index从0开始: (2)建表: ...
- C# 中数据类型以及结构
值类型:int.double.char.bool...,结构. 引用类型:类(string).接口.数组 Class1.cs using System; using System.Collection ...
- python入门(二):数据类型和结构
Python3 中有六个标准的数据类型:tips:用type()函数或者是isinstance(x,int)来判断数据类型,然后for i in 来遍历集合1.Number(数字支持 int.floa ...
- 自定义数据类型 C++ 结构体类型 共同体类型 枚举类型 类类型{}
一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct St ...
随机推荐
- 【概率论】5-10:二维正态分布(The Bivariate Normal Distributions)
title: [概率论]5-10:二维正态分布(The Bivariate Normal Distributions) categories: - Mathematic - Probability k ...
- TCP四路挥手问题:
1.不管被动和主动,只要发送Fin分节就关闭此端应用层.那么挥手时S接到Fin,此刻C已经关闭应用层,那么S再发送消息岂不是无用,浪费网络资源?
- [mysql8]新坑哈 更改Mysql 表的大小转换设置lower_case_table_names=1
在安装了8.0.14之后,初始化的时候在my.cnf里设置了lower_case_table_names=1,安装好了之后,启动报错: 1 2 3 4 5 2019-01-28T13:24:24.91 ...
- Pytest权威教程11-模块及测试文件中集成doctest测试
目录 模块及测试文件中集成doctest测试 编码 使用doctest选项 输出格式 pytest-specific 特性 返回: Pytest权威教程 模块及测试文件中集成doctest测试 编码 ...
- UOJ#468. 【ZJOI2019】Minimax搜索 动态DP
原文链接www.cnblogs.com/zhouzhendong/p/UOJ468.html 前言 毒瘤题 题解 首先,将问题稍加转化,将"等于k"转化为"小于等于k&q ...
- SpringCloud:Eureka服务注册与发现
1.Eureka简介 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构.Eu ...
- Java SpringBoot使用126邮箱发送html内容邮件,带附件
package mail.demo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframewor ...
- CMU Database Systems - Parallel Execution
并发执行,主要为了增大吞吐,降低延迟,提高数据库的可用性 先区分一组概念,parallel和distributed的区别 总的来说,parallel是指在物理上很近的节点,比如本机的多个线程或进程,不 ...
- etcd常用命令记录
etcd常用命令记录 1.查看etcd的版本 [root@etcd01 ssl]# curl -L http://127.0.0.1:2379/version {"etcdserver& ...
- JEECG Hibernate 自动更新 持久化
Hibernate不调用update却自动更新 - 七郎 - 博客园http://www.cnblogs.com/yangy608/p/4073941.html hibernate自动更新持久化类的问 ...