go 2023.3.26

golang开发笔记

一,变量

1.变量介绍

​ 变量 是相当于 内存中 一个 数据储存空间 的表示。

​ 有自己的变量名和数据类型

//指定变量类型,声明后不赋值,使用默认值
package main
import "fmt"
func(){
	var i int
	fmt,println("i=",i)
	//根据值自行判断变量类型
	var num = 10.11
	fmt.Println("num=",num)
	//省略var,i=左侧的变量不因该是已经声明过的
	name := "tom"
	fmt.Println("name",name)
}

​ 可以进行多个变量声明,同样可以进行类型推导

package main

import "fmt"


func main() {
	var n1 , name , n3 = 100, "tom", 888
	fmt.Println(n1,name,n3)
}

package main	

import "fmt"

func getVal(num1 int, num2 int) (int, int) {
	sum := num1 + num2
	sub := num1 + num2
	return sum, sub
}

func main() {
	sum, sub := getVal(30, 30)
	fmt.Println("sum=", sum, "sub=", sub)
	sum2, _ := getVal(10, 30) //只取出第一个值
	fmt.Println("sum=", sum2)
	fmt.Print("Hello world")
}

2.整数类型

查看一个变量的数据类型,用fmt.Printf()用作格式化输出

unsafe.Sizeof()是unsafe包的一个函数,可以返回n1变量占用的字节数

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var n2 int64 = 10
	fmt.Println("n2 的 类型 %T n2占用的字节数是%d",n2,unsafe.Sizeof(n2))
}

3.小数类型

开发中推荐使用float64

package main

import (
	"fmt"
)

func main() {
	var price float32 = 89.12
	fmt.Println("price=", price)
	var num1 float32 = -0.00089
	var num2 float64 = -780965.09
	fmt.Println("num1", num1, "num2", num2)

	//尾数部分可能丢失,造成精度损失。
	var num3 float32 = -123.0000901		//-123.0009
	var num4 float64 = -123.0000901
	fmt.Println("num=", num3, "num4", num4)

	//Golang 的浮点型默认声明为float64 类型
	var num5 = 1.1
	fmt.Println("num5的数据 %T", num5)
    
    //科学计数法形式
    num8 := .123e2
	num9 := .123e-2
	fmt.Println(num8, num9)
}

4.字符类型

​ GO没有专门的字符类型,一般使用byte储存字符

​ 1.go使用 utf-8 编码

​ 2.注意使用转义字符

​ 3.直接输出是 utf-8 的码值,格式化输出 %c ,输出对应的 unicode 字符

​ 4.可进行运算的,相当整数

func main() {
	// 输出码值
	var c1 byte = 'a'
	var c2 byte = '0'
	fmt.Println("c1=", c1)
	fmt.Println("c2=", c2)

	// 格式化输出
	fmt.Printf("c1=%c c2=%c", c1, c2)
	// 汉字存在int类型
}

5.bool类型

占用储存空间一个字节

6.字符串类型

go 中字符串是不可变的,定义赋值后不可更改

拼接时 + 保留在上一行

package main

import (
	"fmt"
)

func main() {
	var str string
	var str2 string
	str = "hello" +
		" world !"
	str2 = str + "hello"
	fmt.Println(str, str2)
	//字符串可拼接赋值
}

7.基本数据类型转换

go在不同类型的变量之间需要进行显式转换,《golang中数据类型不能自动转换

package main

import (
	"fmt"
)

func main() {
	var i int32 = 100
	var n1 float32 = float32(i)
	var n2 int8 = int8(i)
	var n3 int64 = int64(n2) //低精度 ->高精度
	fmt.Println(n1, n2, n3)
	// 溢出处理
}

2023.3.26 记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值