Golang----“Study“

Golang----“Study”

1.包管理

关于包管理的总结:

  • 一个文件夹可以称为一个包。

  • 在文件夹(包)中可以创建多个文件。

  • 在同一个文件夹(包)下的文件中必须指定文件夹(包)名称,且名称相同。

关于包的分类:

  • main包。必须写一个main主函数,此函数就是项目的入口。编译生成的是一个可执行文件。
  • 非main包。用来将代码分类的。

PS:在同一个包内的不同文件可以相互调用各自的func。例如:funcName()

PS: 如果需要调用不同包里面的func,则可以 packageName.funcName()

关于func名称首字母大小写

  • 首字母大写时,可以被别的包调用。

  • 首字母小写时,只可以在当前的包使用。

2.输出

  • 内置函数

    • print
    • println
  • fmt包(推荐)

    • fmt.Println
    • fmt.Print

扩展:

格式化输出

// %s,占位符“文本”
// %d,占位符“整数”
// %f,占位符 小数
// %.2f 占位符 小数(保留小数点后两位,四舍五入)
package main

import "fmt"
func main(){
    fmt.Println("好好%s,天天向上,奖励%d元", "学习", 100)
}

注释

// 单行注释

/* */ 多行注释

3.初识数据类型

func main()  {
	// 整型
	fmt.Println(21)
	fmt.Println(22 - 1)
	// 字符串
	fmt.Println("陈chenih")
	fmt.Println("chen" + "ih")
	// 布尔型
	fmt.Println(1 > 2)
	fmt.Println(2 > 1)
}

4.变量 & 常量

变量
/*
变量
var 变量名 变量类型 = "值"
*/
var username string = "夏洛特"
var age int = 21
var marry bool = false


/*
声明变量也可以先声明,再赋值
*/
var username string
username = "夏洛特"


/*
变量简写
*/
var username string = "夏洛特"
var username = "夏洛特"  // go会自动辨别类型
username := "夏洛特"


/*
因式分解
*/
var (
	username = "夏洛特"
       age = 21
       marry = false
       hobby string
)

PS:变量名必须只包含:字母、数字、下划线。并且不能以数字开头。不能使用关键字命名。

如果只声明不赋值,那么string默认值为空字符串,int默认值为0,bool默认值为flase

go编译器会认为如果声明了变量,但是不使用变量,那么就会报错。

4.1 作用域

如果我们定义了一个{ },那么{ }中定义的变量

不能被上级使用。

同级可以使用。

子级可以使用。

4.2 全局变量(未写在函数中的变量)

定义全局变量时,必须使用以下三种方式:

var username string = "夏洛特"

var username = "夏洛特"

var (
    username = "夏洛特"
    age = 21
)

4.3 赋值及内存相关

func main() {
	/*
	&name : 变量name 的内存地址
	*/
	name := "陈佳禾"
	nickname := name
    
	fmt.Println(name, &name)
	fmt.Println(nickname, &nickname)
}

虽然nickname := name,但是nickname并不是直接指向name,而是重新开辟一个内存地址,将name的值赋值过来。

PS:使用int/string/bool这三种数据类型时,如果遇到变量的赋值则会重新拷贝一份。内存地址不一样。

常量
// 定义常量
const age int = 21

常量不可以修改。常量也分局部常量和全局常量。

iota

const (
	a = iota
       b
       c
)
// 输出:0 1 2

const (
	a = iota + 1
       b
       c
)
// 输出: 1 2 3

const (
	a = iota
       _
       b
       c
)
// 输出:0 2 3    _代替一个值

5.输入

让用户输入数据,完成交互。

  • fmt.Scan

    • package main
      
      import "fmt"
      
      func main() {
      	// fmt.scan
      	var age int
      	fmt.Println("请输入年龄:")
      	count, err := fmt.Scan(&age)
      }
      // Scan会返回两个值,count:输入值的个数,err错误信息
      
  • fmt.Scanln

    • 和Scan没什么区别,唯一区别是如果需要输入两个或两个以上的值时,Scan要等待所有数据都输入完才可以进行下一步,而Scanln可以直接跳过。
  • fmt.scanf

    • package main
      
      import "fmt"
      
      func main() {
      	// fmt.scan
      	var name string
      	var age int
      	fmt.Println("请输入用户名:")
      	fmt.Scanf("我叫%s ,今年%d 岁", &name,&age)
      	fmt.Println(name, age)
      }
      

6.条件语句

单条件判断

 if 条件 {
     成立后(条件判断为:true),此代码块执行
 }else{
     不成立条件判断为:false),此代码块执行
 }

多条件判断

if 条件A {
     条件判断为:true,此代码块执行
 }else if 条件B { 
     条件判断为:true,此代码块执行
}else if 条件C {
    条件判断为:true,此代码块执行
}else {
    不成立条件判断为:false,此代码块执行
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天意不可违.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值