Go语言之基本数据类型

整型

整型分为两大类:按长度分为:int8、int16、int32、int64对应的无符号整型:uint8、uint16、uint32、uint64

类型描述
uint8无符号8位整型(0到255)
uint16无符号16位整型(0到65535)
uint32无符号32位整型(0到4294967295)
uint64无符号64位整型(0到18446744073709551615)
int8有符号8位整型(-128到127)
int16有符号16位整型(-32768 到 32767)
int32有符号32位整型(-2147483648 到 2147483647)
int64有符号64位整型(-9223372036854775808 到 9223372036854775807)

特殊整型

类型描述
uint32位操作系统上就是uint32,64位操作系统上就是uint64
int32位操作系统上就是int32,64位操作系统上就是int54
uintptr无符号整型,用于存放一个指针

注意:使用int和uint时,应该考虑在不同平台上的差异。在涉及到二进制传输、读取文件时,为了保证文件结构不会受到不同编译目标平台自己长度影响,不要使用int和uint

 

浮点数

打印浮点数时,使用fmt配合动词%f

package main

import(
    "fmt"
    "math"
)

func main(){
    fmt.Printf("%f\n",math.Pi)
    fmt.Printf("%.2f\n",math.Pi)
}

 

复数

complex64和complex128

var c1 complex64
c1 = 1+2i
var c2 complex128
c2 = 2+3i
fmt.Println(c1)
fmt.Println(c2)

 

布尔值

var a bool        # 默认为false

 

字符串

Go语言字符串内部实现使用UTF-8编码,字符串使用("")

 

字符串转义

转义符含义
\r回车符(返回首行)
\n换行符(直接跳转到下一行)
\t制表符
\'单引号
\"双引号
\\反斜杠

多行字符串

多行字符串使用反引号字符

s1:=`第一行
第二行
第三行
`
fmt.Println(s1)

 

字符串的常用操作

方法介绍
len(str)求长度
+或fmt.Sprintf拼接字符串
strings.Split分割
strings.contains判断是否包含
strings.HasPrefix,strings.HasSuffix前、后缀判断
strings.Index(),strings.LastIndex()字符出现的位置
strings.Join(a[]string,sep string)join操作

 

byte和rune类型

Go语言字符有两种:uint8类型-代表ASCII码的一个字符。 rune类型-代表一个utf-8字符

当处理中文、日文等符合字符时,需要用rune类型,实际就是一个int32

func main(){
	s := "hello 北京"
	for _,r:=range s{
		fmt.Printf("%c-", r)
	}
}

h-e-l-l-o- -北-京-

 

修改字符串

要修改字符串,需要先将其转换为[]rune或[]byte,完成后再转换为string。无论哪种都会重新分配内存,并复制字节数组

func changeString() {
	s1 := "big"
	// 强制类型转换
	byteS1 := []byte(s1)
	byteS1[0] = 'p'
	fmt.Println(string(byteS1))

	s2 := "白萝卜"
	runeS2 := []rune(s2)
	runeS2[0] = '红'
	fmt.Println(string(runeS2))
}

 

使用rune判断是否为回文

func process(str string) bool {
	t := []rune(str)
	length := len(t)
	for i := range t {
		if i == length/2 {
			return true
		}
		last := length - 1 - i
		if t[i] != t[last] {
			return false
		}
	}
	return true
}

func main() {
	for {
		var str string
		fmt.Println("输入字符:")
		fmt.Scanln(&str)

		if process(str) {
			fmt.Println("是回文")
		} else {
			fmt.Println("不是回文")
		}
	}
}

 

类型转换

Go语音只有强制类型转换,没有隐式类型转换

语法:T(表达式)          T表示要转换的类型。表达式包含变量、复杂算子和函数返回值等。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值