Go语言笔记

这篇博客介绍了Go语言的基础知识,包括Go语言的诞生背景、第一个Go程序、词法单元、变量和常量、基本数据类型(如字符串操作)、复合数据类型(如指针、数组、slice和map)以及流程控制(如选择执行和循环)。通过实例展示了Go语言的特点和语法,适合初学者入门。
摘要由CSDN通过智能技术生成

万物之始,大道至简,演化至繁,一切复杂的软件都是由基本的程序排列组合来的。

第一章 基础知识

1.1 Go语言简介

Go语言主要是为了解决当前其他编程语言对并发支持不友好、编译速度慢、编程复杂的问题而诞生的,因为是后来设计的,比目前主流的编程语言历史都短,因此也借鉴了其他编程语言的优秀经验,同时也避免了很多缺点。

1.2 第一个Go程序

基本上每个语言第一个程序都是hello world,Go语言的hello world如下

例1.1 hello world

package main

import "fmt"

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

结果:

hello world

Hello world程序解读:

        第一行package main定义了一个包,包名是main,main是可执行程序的包名,所有的Go程序文件头部必须有一个包声明语句,Go通过包来管理命名空间

        第3行import "fmt" 表示引用一个外部包fmt,这里可以引用标准库的包,也可以是第三方包或者自定义的包

        第5行使用func关键字声明定义了一个函数,函数名为main,main代表Go程序入口函数

Go代码的特征:

        源程序以.go为后缀

        默认为UTF-8编码

        标识符区分大小写

        语句结尾的分号可以省略,也可以加(这点感觉设计的不好,不应该提供两种选择让用户选择,直接规定一种格式更好,让用户选择反而会导致代码风格不同)

        main函数所在的包名必须是main

        编译运行

go编译命令为go build xxxx.go,运行命令为./xxxx,如下例所示:

//go build test2.go 为编译命令
bytedance@C02D31DRML85 awesomeProject12 % go build test2.go
//./test2 为运行命令
bytedance@C02D31DRML85 awesomeProject12 % ./test2
hello world

1.3 词法单元

  1. 这块和其他编程语言基本类似,go的标识符也是必须以字母或下划线开头,后面可以跟任意个字符、数字、下划线,且区分大小写

  1. Go有25个关键字,相比Java少了很多,在定义变量/常量等的时候,要避开关键字,否则会出问题

  1. Go的操作符和其他编程语言也大同小异,基本都是算术运算符、位运算符、赋值运算符、比较运算符、逻辑运算符那些

1.4 变量和常量

高级语言通过一个标识符来绑定一块特定的内存,后续对这块特定的内存的操作都可以使用该标识符来代替,这类绑定了某个存储单元的标识符可分为变量和常量,变量表示指向的内存可以被修改,而常量表示指向的内存不能被修改。

1.4.1 变量

Go的基本类型变量声明有三种方式,如下例所示:

例1.1 变量的声明方式

package main

import (
   "fmt"
)

func main() {
   var a = 4      //变量声明方式1
   var b int = 5  //变量声明方式2
   c := 6         //变量声明方式3,Go编译器会自动进行数据类型推断
   
   fmt.Println("a = ", a)
   fmt.Println("b = ", b)
   fmt.Println("c = ", c)
}

Go语言提供自动内存管理,通常情况下程序员不需要特别关注变量的生存期和存放位置

例1.2 同时声明多个变量

package main
import (
   "fmt"
)

func main(){
   var (
      a string
      b int
      c bool
   )

   a = "adb"
   b = 124
   c = true

   fmt.Println("a = ",a)
   fmt.Println("b = ",b)
   fmt.Println("c = ",c)
}

1.4.2 常量

常量使用一个名称来绑定一块内存地址,该地址里存放的内容不可以改变,使用关键字const来声明常量,如下例所示:

例1.3

package main
import (
   "fmt"
)

func main(){
   const (
      a = 23
      b = 23332
      c = "233"
   )

   fmt.Println("a = ",a)
   fmt.Println("b = ",b)
   fmt.Println("c = ",c)
}

iota关键字:

iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。

iota 可以被用作枚举

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值