go的基础语法

hello go

// go 文件的后缀是.go
// package 标识该文件所在的包
// import 表示引入一个包 包名fmt
/*
	func main (){

	}
	func是一个关键字,表示一个函数
	main是函数名,主函数
*/
/*
	go build -o xxx xx.go  ====>  生成指定的可执行文件xxx 
	go build xxx.go 
	./xxx (mac) ====> 运行可执行文件
*/
/*
	1,go应用程序的执行入口是main方法
	2,严格区分大小学
	3,每句句末不需要分号
	4,一行一行编译的
	5,声明的变量和引入的包必须是使用的,否则编译错误
	6,{ 不能作为一行的开头
*/
/*
转义字符
	1,\t : 一个制表位
	2,\n : 换行符
	3, \\ : 一个\
	4, \r : 一个回车
*/
package main

import "fmt"
func main(){
	fmt.Println("hello go")
}

变量的声明

/*
	变量使用的注意事项
	1,变量表示内存中的存储区域
	2,声明后不赋值,默认为默认值
			例如:int 默认值 0
				string 默认值 “”
				bool 默认值 false
	3,根据值自行判断变量类型
*/
package main
import "fmt"

// 声明全局变量
var q1 int = 2
var q2 string = "2"
// 以上可以简写成如下
var (
	q3 = 3
	q4 = "3"
)

func main(){
	// 定义变量
	var num int
	// 给变量赋值
	num = 1
	fmt.Println(num)

	// 类型推导
	var num2 = 10.11
	fmt.Println(num2)

	// 省略var 
	// 下面的方式等价于 var name string name = "tom"
	name := "tom"
	fmt.Println(name)

	// 支持一次性声明多个变量
	var n1, n2, n3 int
	fmt.Println(n1, n2, n3)
	
	var name2, number, money = "s", 1, 1.2;
	fmt.Println(name2, number, money)
	fmt.Println(q1, q2, q3, q4);
}

如何查看声明变量的类型以及字节数?

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var num int8 = 125
	fmt.Printf("该变量的类型为: %T", num)

	fmt.Printf("该变量占用的字节数为 %d", unsafe.Sizeof(num))
}

数据类型

go中变量的数据类型

	基本数据类型:
		数值 整数:int,int8,int16,int32
			uint,uint8,uint32,uint64
			浮点类型: float32 float64
		字符 无专门的字符,一般用byte表示单个字母
		布尔 bool
		字符串 string

	复杂数据类型
		1,指针
		2,数组
		3,结构体
		4,管道
		5,函数
		6,切片
		7,接口
		8,map

uint 表示正数,无符号,例如uint8的范围为0~255
var n1 = 100 // n1是什么类型
fmt.Printf("%T", n1)  =====>可以查看变量类型

String与基本类型的互相转换

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var i int32 = 100
	// 将int32转换为float
	var n1 float32 = float32(i)
	fmt.Println(n1)

	// go 不支持隐式转换类型
	var num1 int32 = 100
	var num2 int64 = int64(num1)
	fmt.Println(num2)

	/*
		基本数据类型转String
	*/
	// fmt.Sprintf("%参数,表达式")
	var num3 int = 183
	var num4 float64 = 17.134
	b := true
	myChar := 'C'
	str := ""
	// int转string
	str = fmt.Sprintf("%d \n", num3)
	fmt.Printf("str type is %T,str = %v", str, str)
	// float转string
	str = fmt.Sprintf("%f \n", num4)
	fmt.Printf("str type is %T,str = %v", str, str)
	// bool转string
	str = fmt.Sprintf("%t \n", b)
	fmt.Printf("str type is %T,str = %v", str, str)
	// 字符转string
	str = fmt.Sprintf("%c \n", myChar)
	fmt.Printf("str type is %T,str = %v", str, str)

	// 使用strconv包的函数转换
	fmt.Println("第二种转换方式")
	str = strconv.FormatInt(int64(num3), 10)
	fmt.Printf("str type is %T,str = %v \n", str, str)
	str = strconv.FormatFloat(num4, 'f', 8, 64)
	fmt.Printf("str type is %T,str = %v \n", str, str)
	str = strconv.FormatBool(b)
	fmt.Printf("str type is %T,str = %v \n", str, str)

	/*
		String转基本类型
	*/
	fmt.Println("string转基本类型")
	str2Int := "123"
	str2Float := "3.14"
	str2Bool := "true"
	// str2Char := 'a'

	// int转string PaseInt参数:str, 进制, 位
	fmt.Println("string转int")
	i2, err1 := strconv.ParseInt(str2Int, 10, 64)
	if err1 == nil {
		fmt.Printf("i2 type is %T, value is %v \n", i2, i2)
	} else {
		fmt.Println("format error")
	}

	// float转string ParseFloat参数:str, 位
	fmt.Println("string转float")
	f, err2 := strconv.ParseFloat(str2Float, 64)
	if err2 == nil {
		fmt.Printf("i2 type is %T, value is %v \n", f, f)
	} else {
		fmt.Println("format error")
	}

	// bool转string ParseBool参数:str
	fmt.Println("string转bool")
	b, err3 := strconv.ParseBool(str2Bool)
	if err3 == nil {
		fmt.Printf("i2 type is %T, value is %v \n", b, b)
	} else {
		fmt.Println("format error")
	}

}

持续更新。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值