初识go语言

本文介绍了GO语言的基础,包括变量声明、常量定义、数据类型、运算符以及基本的输入输出方法。讲解了gopath和goroot的作用,以及如何编译和运行第一个GO程序。
摘要由CSDN通过智能技术生成

语言优势

运行速度快,简单易学,适合开发区块链

go项目存放地:gopath

第一个程序的编译

//goroot:工具库
//gopath:项目存放得位置 
// go build 文件名.go  对文件进行编译生成编译文件前提是在对应文件路径下
// 运行程序  .\文件名.exe
//直接运行源代码,不产生编译文件 go run 文件名.go
//第一个go程序
//go env 查看配置
package main

import "fmt"

func main(){
	fmt.Print("hello go")
}



//匿名变量
//多重变量赋值
a ,b = b, a//b给到a,a给到b

注意:每行代码结尾都没有分号

关键字和标识符

第一章:GO语言的基本数据类型

注: go语言中判断返回的是布尔类型,并不像c语言中返回0或1

1. 变量

1.1. 变量批量声明

存放一组变量定义
格式:
var (
    a 变量类型
    b 变量类型
    c,d 变量类型
)
示例:
var (
        goodsPrice float32
        goodsNum,goodsId int
)
goodsId = 123
goodsNum = 5
goodsPrice = 6.7

1.2. 变量简短格式声明(自动推导类型)

注: 自动推到类型,值为小数点时默认创建的类型为float64

定义在函数内部的显式初始化,不提供数据类型
格式:
变量名 := 变量值
变量名1, 变量名2 := 变量值1, 变量值2

示例1:goodsName := "Go语言“
// 两个变量的类型可以不同
示例2:goodsSize,goodsID := "50kg“,”go0001”


1.3. 输出格式的三种方法的不同

  1. 格式符(格式符大全)
    1. %d: 整形
    2. %f: 浮点型 ( 浮点型是可以控制精确那几位小数的 , 列如 : 两位小数 %.2f(精确两位小数的同时,进行四舍五入))
    3. %T: 输出数据是什么数据类型
    4. %t : 布尔类型bool
    5. %c: 字符类型
    6. %s: 字符串
    7. %v: 输出值的默认格式,变量的自然形式

	//printf方法指定输出的格式符,只用了一个双引号,看着很优雅,像c的输出方法
	fmt.Printf("买的第一个商品的id是 = %d\n买的第一个商品价格是 = %d", commodity1Id, commodity1Preice) //%d(格式符) 表示输出整形结果
	//输出后自动换行
	fmt.Println("买的第一个商品的id是=", commodity1Id, "买的第一个商品价格是", commodity1Preice)
	//print方法正常输出
	fmt.Print("买的第一个商品的id是 = ", commodity1Id, "买的第一个商品价格是 ", commodity1Preice)

1.4. 输入格式(键盘输入的两种方法,他们的区别就是一个要给格式符一个不要,都一样)

//&取地址符号(就是获取内存地址)
	fmt.Println("请输入你对应的id")
	//fmt.Scanf("%d", &commodity1Id) //通过Scanf函数键盘输入的数据赋值给变量,变量名前面一定要加&符号


	//fmt.Println("根据你提供的id我们查询到你的id为  = ", commodity1Id)



	//这是重点
	//fmt.Println(&commodity1Id) //通过取地址符,就可以获取变量的内存地址
	//&p代表的是内存地址的格式符
	//fmt.Printf("&p", &commodity1Id)
	fmt.Scan(&commodity1Id) //与scanf相比这个就不需要给格式符
	fmt.Println("根据你提供的id我们查询到你的id为", commodity1Id)



//--------------------------------------------------
tmp.scanln方法也是扫描方法

2. 常量

标准定义格式:const 常量名[常量类型] = 常量值
显式定义格式:const 常量名 常量类型 = 常量值
隐式定义格式:const 常量名 = 常量值
//示例
	const a int = 1
	const b,c = 2,"C"

3. 数据类型

  1. 数值类型的默认值为0
  2. float32大约可以提供小数点后6到8位的精度
  3. float64可以提供小数点后15位的精度
  4. Complex64分为32位实数和32位虚数
  5. Complex128分为64位实数和64位虚数

  1. string类型:string类型隐藏着一个字符串结束标志'\0',打印的时候不会显示,\0代表结束标志

String类型的使用

  1. len方法:用于计算字符串的字符个数
    1. 字符串的结束标志 '\0'(但是他不会输出出来)
//go语言中一个汉字占三个字符,一个字母占一个字符
	str := "龚志超"
	str1 := "abc"
//len方法的使用
	fmt.Println(len(str))
	fmt.Println(len(str1))

4. 运算符

注意

  1. 两个运算数的类型必须相同并且为基本数据类型
  2. 自增和自减在go语言中形成单独的语法
	var a int = 1
	var b int
	a++			//正确
	b = (a++)		//错误,因为自增自减只能当作一个独立的语句使用
	++a			//错误,因为自增自减只能写在变量的后面
  1. 逻辑运算符
	var a bool = (1 == 1) //此时a的值为布尔值true
//用括号括起来

3. 位运算符

  1. 赋值运算符

  1. 数据类型的转换

原则: 1. 范围小的可以转成范围大的,但是不可以转成范围小的,否则会产生精度丢失,或者是数据溢出

2 . 只有底层类型相同得变量才可以相互转换


	var num int = 12
	var float = 1.2
//通过这样的方式直接进行转换
	fmt.Printf("%d", int(float))
	fmt.Println(num)
----------------------------------------------------------------------------------------
// 初始化一个32位整型值

	var a float32 = 3.33
// reflect.TypeOf方法: 获取整形的类型
	fmt.Printf("a的值为:%f,类型为:%s \n", a, reflect.TypeOf(a))
	b := int(a) //精度丢失
	fmt.Printf("b的值为:%d,类型为:%s \n", b, reflect.TypeOf(b))
	//将整数转换为对应的十进制字符串的函数
	c := strconv.Itoa(int(a))
	fmt.Printf("c的值为:%s,类型为:%s \n", c, reflect.TypeOf(c))

结果:

a的值为:3.330000,类型为:float32
b的值为:3,类型为:int
c的值为:3,类型为:string

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值