美文网首页
GO基础1-类型

GO基础1-类型

作者: 一直吃不饱 | 来源:发表于2020-12-03 13:48 被阅读0次

目录

1.常量
2.不丢失精度计算
3.字符串的常用操作
4.字符
5.修改字符串
6.转换类型

1.常量
//import "unsafe"
const (
    A = iota //A=0
    B        //B=1
    C        //c=2
)
fmt.Println("字节大小:", unsafe.Sizeof(A)) // PS:无法查看string类型所占用存储空间,改用len
2.不丢失精度计算
//import "github.com/shopspring/decimal"
var num1 float64 = 3.1
var num2 float64 = 4.2
fmt.Printf("保留2位小数:%.2f\n", num1)
// 加法:Add, 减法:Sub, 乘法:Mul, 除法:Div
d1 := decimal.NewFromFloat(num1).Add(decimal.NewFromFloat(num2))
3.字符串的常用操作
方法 介绍
len(str) 求长度
+ 或 fmt.Sprintf 拼接字符串
strings.Split 分割
strings.Contains 判断是否包含
strings.HasPrefix(), strings.HasSuffix() 前缀/后缀判断
strings.Index, strings.LastIndex 子串出现的位置
strings.Join(a[]string,sep,string) join操作
/*字段长度  输出:2*/
str1 := "10"
fmt.Println(len(str1))  

/*拼接  输出:123456*/
str2 := "123"
str3 := "456"
fmt.Println(fmt.Sprintf("%v%v", str2, str3)) 

/*分割  输出:[123 456 789]*/
var str4 = "123-456-789"
arr1 := strings.Split(str4, "-")
/*把切片连接成字符串  输出:123*456*789*/
arr2 := strings.Join(arr1, "*")

/*是否包含  输出:true*/
str5 := "123456"
str6 := "123"
fmt.Println(strings.Contains(str5, str6))

/*判断前后缀  输出:true and true*/
str7 := "2020Y-09M-14D"
str8 := "2020"
str9 := "D"
fmt.Println(strings.HasPrefix(str7, str8), "and" ,strings.HasSuffix(str7, str9))

/*判断位置 输出:3 and 8*/
str10 := "This is str"
str11 := "s"
fmt.Println(strings.Index(str10, str11), "and" ,strings.LastIndex(str10, str11))

/*拼接  输出:I@love@beijing*/
str12 := strings.Join([]string{"I", "love", "beijing"}, "@")
4.字符
/*英文ASCII编码,汉字UTF-8编码*/
var a = 'a'
var b = '好'
fmt.Printf("%v\n", a) //97
fmt.Printf("%v\n", b) //22909
//循环遍历输出字符串里的字符
s := "golang"
for i := 0; i < len(s); i++ {
  fmt.Printf("%v(%c)", s[i], s[i]) //byte类型,遍历英文
}
y := "你好 golang"
for _, v := range y {
   fmt.Printf("%v(%c)", v, v) // rune类型,遍历英文与汉字
}
5.修改字符串
/*输出:pig*/
s1 := "big"
byteStr := []byte(s1)
byteStr[0] = 'p'
fmt.Println(string(byteStr))
// 汉字
s2 := "你好"
runeStr := []rune(s2)
runeStr[0] = '我'
fmt.Println(string(runeStr))
6.转换类型
/* int 转换 strings 输出:20 strings*/ 
/* float64:%f bool:%t byte:%c*/
var i int = 20
str1 := fmt.Sprintf("%d", i)
fmt.Printf("%v,%T\n", str1, str1)
/* 通过 import "strconv " */ 
var i int = 20
str1 := strconv.FormatInt(int64(i), 10)
fmt.Printf("%v,%T\n", str1, str1)
/*转化 float */
//参数1:要转换的值
//参数2:格式化类型 'f' (-ddd.dddd)
//                'b' (-ddddp±ddd, 指数为二进制),
//                'e' (-d.dddde±dd, 十进制指数),
//                'E' (-d.ddddE±dd, 十进制指数),
//                'g' (指数很大时用 'e' 格式,否则 'e' 格式),
//                'G' (指数很大时用 'G' 格式,否则 'f' 格式),
//参数3:保留的小树点 -1(不对小数点格式化)
//参数4:格式化的类型 传入 64 32
var f float32 = 20.231313
str2 := strconv.FormatFloat(float64(f), 'f', 4 ,32) // 20.2313
// strings 转化整型
str3 := "123456"
str4, _ := strconv.ParseInt(str3, 10, 64) // 参数1:stringss数据;参数2:进制;参数3:位数 32 64 16
// strings 转化浮点型
str5, _ := strconv.ParseFloat(str3, 64) // 参数1:stringss数据;参数2:位数 32 64

相关文章

  • GO基础1-类型

    目录 1.常量2.不丢失精度计算3.字符串的常用操作4.字符5.修改字符串6.转换类型 1.常量 2.不丢失精度计...

  • Go学习-数据类型

    Go数据类型 Go语言将数据类型分为四类 基础类型 复合类型 引用类型 接口类型 基础类型 数字 字符串 布尔 整...

  • Go 语言程序设计(3)

    stacker.go 示例代码: stack.go 示例代码: 知识点: go 内置基础类型:布尔类型: bool...

  • 《GO语言圣经》读书笔记 第三章 基础数据类型

    Go语言将数据类型分为四类:** 基础类型、复合类型、引用类型和接口类型 ** 整型 Go语言的数值类型包括几种不...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • Go语言第3天 - 常用数据类型

    以下内容部分参考自Go语言基础数据类型Go语言中的数组切片:特立独行的可变数组Go语言数据类型-数组Go标准容器之...

  • 第三章:Go语言基础数据类型

    1. Go语言数据类型 1.1 数据类型分类 Go语言数据类型大致可以分为两类基础类型,其中就包括了我们最常见的一...

  • Go语言入门指南系列之《2基础类型》

    Go 语言中的基础类型   在 Go 编程语言中,数据类型用于声明函数和属性。数据类型的出现时为了把数据分成所需要...

  • 【Golang 基础】Go 语言中的基本类型

    Go 语言中的基础类型   在 Go 编程语言中,数据类型用于声明函数和属性。数据类型的出现时为了把数据分成所需要...

  • GoLang Go 基础类型

    Boolean 布尔值的类型为bool,true或false,默认false 数值类型 整数类型 整数类型有无符号...

网友评论

      本文标题:GO基础1-类型

      本文链接:https://www.haomeiwen.com/subject/burmwktx.html