Golang入门-基本数据类型

和我接触的其他语言差不多,总的来说就是整形,浮点型,布尔型,字符串,不过有一个我没接触过的就是复数,之前都是要定义结构体。

## 浮点型
o语言支持两种浮点型数:float32和float64。

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)

复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位
## 字符串
Golang 字符串定义确实好用,也没那么多好说的,举个栗子

s1 := "hello"
s2 := "你好"

## byte和rune类型*
组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。
Go 语言的字符有以下两种:

1、uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。
2、rune类型,代表一个 UTF-8字符。
讲一个简单的例子来区别,byte型遍历字符串的时候如果有汉字,就会遍历出来乱码,因为汉字由好几个字节组成,相当于把汉字拆开,用rune类型则不会。举个栗子

// 遍历字符串
func traversalString() {
	s := "hello二狗"
	for i := 0; i < len(s); i++ { //byte
		fmt.Printf("%v(%c) ", s[i], s[i])
	}
	fmt.Println()
	for _, r := range s { //rune
		fmt.Printf("%v(%c) ", r, r)
	}
	fmt.Println()
}

输出

104(h) 101(e) 108(l) 108(l) 111(o) 228(ä) 186(º) 140() 231(ç) 139() 151()
104(h) 101(e) 108(l) 108(l) 111(o) 20108() 29399()

## 修改字符串

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

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

# 类型转换
强制类型转换的基本语法如下

T(表达式)

其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.
举个栗子

func sqrtDemo() {
	var a, b = 3, 4
	var c int
	// math.Sqrt()接收的参数是float64类型,需要强制转换
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值