go 语言学习笔记①

go 语言学习笔记①

线上编译器 https://play.golang.org

一个小程序

package main//(包名)

import "fmt"//(引入其他包) fmt输出

func main() {//main函数首先执行
	fmt.Println("hello world")//调用pmt包中Println函数 Println 打印在一行
}

句末不用加分号 (自动加)
花括号”{“要写到句末, 不能另起一行
导入包没有使用会报错
变量声明没用使用会报错

使用其他包中函数

  1. 导包 eg:import "fmt"
  2. 调函数 eg :fmt.Println("hello world")
    引用包不调用会报错
    导入多个包
import(
	"math"
	"strings"
)

数据类型

go是静态类型

字符串

双引号之间的文本

转义序列
\n换行符
\t制表符
\"双引号
\|反斜杠

len(变量名) 字符串长度

符文(rune)

(c语言中的字符)
单引号
Unicode字符编码

布尔值

两个值true false

数字

整型和浮点数

查看变量类型

导入包 reflect
使用函数TypeOf

package main

import (
	"fmt"
	"reflect"
)

func main() {
	fmt.Println(reflect.TypeOf(1))
}

类型描述
int整型, 保存数字
float64浮点数, 保存带小数部分的数字
bool布尔值
string字符串

变量声明

var 变量名 变量类型
var a int
可以同时声明多个变量
var a ,b int
为多个变量赋值
var a , b int = 1 , 2

零值

int 0
float64 0
string 空字符串
bool false

短声明变量并赋值

自动推导类型
a := 1
b := 3.6
c := true

一个变量在同一作用域里只能声明一次
赋值 = 声明并赋值:=
只能给变量赋相同类型的值
有几个声明变量后面就要有几个值

命名规则

必须以字母开头 字符和数字
小驼峰 大驼峰
只用名称是以大写字母开头的变量,函数或类型才被认为是可以到处的:可以从当前包之外的包访问

类型转换

int * float64 会报错
转换 float64(int变量名)

交换两个值

(类py)

package main
import "fmt"

func main() {
	a := 10
	b := 20
	fmt.Println(a, b)
	a, b = b, a
	fmt.Println(a, b)

}

常量和变量

变量:程序运行期间可以改变的量, 变量声明需要var
常量:程序运行期间 不可以改变的量, 常量声明需要const 不能使用 :=
const a int = 10

iota

给常量赋值使用
常量自动生成器 , 每隔一行, 自动累计加1
遇到const 重置为0
可以只写一个iota
如果在同一行值一样

package main

import "fmt"

func main() {
	const (
		a = iota
		b = iota
	)
	const (
		c = iota
		d = iota
	)
	fmt.Println(a, b, c, d)
	//输出0 1 0 1 
	const (
		aa = iota
		bb
		cc
	)
	fmt.Println(aa, bb, cc)
	//输出0 1 2 
}

输出

fmt.Println("")自动换行
fmt.Printf("")格式化输出

选择

if…… else if ……else

package main
import "fmt"

func main() {
	g := 100
	if g >= 80 {
		fmt.Println("优秀")
	} else if g >= 60 {
		fmt.Println("及格")
	} else {
		fmt.Println("不及格")
	}
}

switch

package main

import "fmt"

func main() {
	num := 100
	switch num {
	case 100, 90:
		fmt.Println("优秀")
	case 80, 70, 60:
		fmt.Println("及格")
	default:
		fmt.Println("不及格")
	}
}

可以有多个值, 自带break
fallthrough不跳出继续向下执行

循环

无 while 循环

for

类c语言for循环

package main

import "fmt"

func main() {
	for i := 1; i <= 10; i++ {
		fmt.Println(i)
	}
}

range

返回两个值第一个是位置第二个是当前位置的值

package main

import "fmt"

func main() {
	str := "abc"
	for i, date := range str {
		fmt.Println(i,date)
	}
}

package main

import "fmt"

func main() {
	str := "abc"
	for _, date := range str {
		fmt.Println(date)
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值