Go基础(1)-helloworld和变量以及指针

1,输出helloworld

package main

import "fmt"

func main() {
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
}

2,转义符

package main

//转义字符
//\n换行
//\t一个制表位
//\\ 一个\
//\" 一个"
//\r 一个回车
import "fmt"

func main() {
	demo05()
}

func demo01() {
	fmt.Println("hello world\thello world")
}

func demo02() {
	fmt.Println("hello world\nhello world")
}

func demo03() {
	fmt.Println("hello world\\hello world")
}

func demo04() {
	fmt.Println("hello world\"hello world")
}

//把hello world2替换前面的hello world
func demo05() {
	fmt.Println("hello world\rhello world2")
}

3,变量

3.1 变量使用

package main

import "fmt"

func main() {
	//定义变量
	var i int
	//给变量赋值
	i = 10
	//使用变量
	fmt.Println("i=", i)
}

3.2 变量使用的注意点

在这里插入图片描述

3.3根据值判断变量类型

package main

import "fmt"

//声明全局变量
var w1 = "w1"
var (
	m1 = 300
	m2 = 900
)

func main() {
	//类型推导
	var num = "10.10"
	fmt.Println(num)

	//等价 var name ="tome"
	name := "tome"
	fmt.Println(name)

	//一次声明多个变量
	var n1, n2, n3 int
	fmt.Println(n1 == n2)
	fmt.Println(n2)
	fmt.Println(n3)

	var x1, x2, x3 = 100, "tom", 888
	fmt.Println(x1)
	fmt.Println(x2)
	fmt.Println(x3)

	z1, z2, z3 := 100, "xcv", 888
	fmt.Println(z1)
	fmt.Println(z2)
	fmt.Println(z3)

	fmt.Println(w1)
}

4 数据类型介绍

在这里插入图片描述

4.1,整数类型

package main

import (
	"fmt"
	"unsafe"
)

/*
int8 1个字节
int16 2个字节
int32 4个字节
int64 8个字节
*/
func main() {
	var i int64
	fmt.Println(i)

	//var j int8 = -129
	//fmt.Println(j)

	//查询数据类型
	var n2 int64 = 10
	fmt.Printf("n2的类型%t \n", n2)
	fmt.Println("n2的占用字节数", unsafe.Sizeof(n2))
}

4.2,浮点类型

package main

import "fmt"

func main() {
	var parce float32 = 81.832
	fmt.Println(parce)
	/**
	小数类型分类
	float32单精度
	float84双精度
	64位精度更高更准确
	*/
	var num1 float32 = -123.0000009001
	var num2 float64 = -123.0000009001
	fmt.Println(num1)
	fmt.Println(num2)

	//golang里的浮点型默认声明为float64
	var num3 = 6.44
	fmt.Printf("%T", num3)
}

4.3,字符类型

package main

import "fmt"

/*
go的字符是由字节组成
*/
func main() {
	var c1 byte = 'a'
	var c2 byte = '0'
	//直接输出输出的是ascii码表值
	fmt.Println(c1)
	fmt.Println(c2)
	//格式化输出
	fmt.Printf("%c \n", c1)
	fmt.Printf("%c", c2)

	var c3 int = '北'
	fmt.Println(c3)
	fmt.Printf("%c \n", c3)
}

4.4,布尔类型

package main

import "fmt"

func main() {
	var b bool = false
	fmt.Println(b)
}

4.5,字符串类型

package main

import "fmt"

func main() {
	address := "北京"
	fmt.Println(address)
	address += "-南京"
	fmt.Println(address)
	var i string
	fmt.Println(i)
}

4.6,数据类型的默认值

在这里插入图片描述

5,数据类型装换

package main

import "fmt"

func main() {
	var i int32 = 100
	//把i转成flotat
	var n1 float32 = float32(i)
	fmt.Println(n1)
	var n2 int8 = int8(i)
	fmt.Println(n2)

	//会按照溢出处理,转的时候需要考虑范围
	var num1 int64 = 999999
	var num2 int8 = int8(num1)
	fmt.Println(num2)
}

6,基本数据类型转

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var num1 int = 99
	var num2 float64 = 23.456
	var num3 bool = true
	var num4 byte = 'h'
	var num5 string
	//第一种方式
	num5 = fmt.Sprintf("%d \n", num1)
	fmt.Println(num5)

	num5 = fmt.Sprintf("%f", num2)
	fmt.Println(num5)

	num5 = fmt.Sprintf("%p", num3)
	fmt.Println(num5)

	num5 = fmt.Sprintf("%c", num4)
	fmt.Println(num5)
	fmt.Println("==============================")
	var num6 string
	//第二种方式
	num6 = strconv.FormatInt(int64(num1), 10)
	fmt.Println(num6)
	num6 = strconv.FormatFloat(num2, 'f', 10, 64)
	fmt.Println(num6)
	num6 = strconv.FormatBool(num3)
	fmt.Println(num6)
}

7,string转基本数据类型

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var str string = "true"
	var str2 string = "386"
	var str3 string = "386.4556"
	var b bool
	var i int64
	var f float64
	//说明,strconv.ParseBool会返回两个值,
	//只关心bool不关心error就可以用_忽略调
	b, _ = strconv.ParseBool(str)
	fmt.Println(b)
	i, _ = strconv.ParseInt(str2, 10, 0)
	fmt.Println(i)
	f, _ = strconv.ParseFloat(str3, 64)
	fmt.Println(f)
}

7 指针

在这里插入图片描述

7.1,指针案例

package main

import "fmt"

func main() {
	//基本数据类型的空间布局
	var i int = 10
	fmt.Println("空间地址", &i)
	//ptr是一个指针变量
	//ptr的类型*int
	var ptr *int = &i
	fmt.Println(ptr)
	fmt.Println(&ptr)
	//用*ptr可以获取ptr的值
	fmt.Println(*ptr)
	n2 := int(*ptr)
	fmt.Println(n2)
	//修改了*ptr的值等于修改了i的值
	*ptr = n2 + 1
	fmt.Println(*ptr)
	fmt.Println(i)
}

7.2,值类型和引用类型的特点

在这里插入图片描述

7.3,golang标识符命名规范

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值