Golang学习笔记(1)

基本知识

golang的文件格式以go结尾。
运行方式 go run main.go 用于开发调试使用
编译成二进制文件 go build main.go 会生成一个可执行的二进制文件

变量

变量定义的形式

Golang的变量定义有多种,首先,我们看下最繁琐的定义:var X [类型] = XX
实例:

package main
import "fmt"
func main() {
    var a int = 1
    fmt.Println(a)
}

这里的变量类型我们可以把它省略,因为编译器会自动去判断变量的类型。格式变成var X = XX
实例:

package main 
import "fmt"
func main() {
    var a = 1
    fmt.Println(a)
}

还有一种变量的表示形式,这种方式最简洁X := XX
实例:

package main
import "fmt"
func main() {
    a := 1
    fmt.Println(a)
}

如果一个变量很重要使用第一种方式定义,比如全局变量。如果一个变量不那么重要就可以使用第三种方法定义,比如:

 for i := 0; i<10; i++ {
     doSomething()
 }

注意: var 关键字无法直接写进循环体中的初始化语句中,而且必须提前声明变量:

var i = 0;
for ; i<10; i++ {
    doSomething()
}
局部变量和全局变量

局部变量: 定义在函数内部,函数调用结束它就消亡。
全局变量: 首字母大写,就是公开的全局变量;如果是小写的首字母,就是内部变量。内部全局变量只能当前包内访问,外部代码是看不见的。

变量与常量

Gonlang中用const关键字定义常量。常量是全局常量也可以是局部常量。常量必须初始化,且不能二次修改。全局的常量规则与大小写一致。

指针

指针符号 * 、取地址符 &,功能上和 C语言几乎一模一样。指针还支持二级三级等指针。

package main
import "fmt"
func main() {
    var value int = 42;
    var pointer *int = &value
    fmt.Println(pointer, &pointer)
}

基本类型

符号整型: int8\int16\int32\int64 1~4字节
无符号整型: uint8\uint16\uint32\uint64
说明: int 类型在32系统占用64字节,在64位系统占用8个字节
布尔类型: bool
字节类型: byte
字符串类型: string
浮点类型: float
复数类型: complex64\complex128
unicode字符类型: rune
指针类型: uintptr
采用第一种变量的定义方式,编译器会自动赋初值,整型赋值 0, 字符串赋值 空串,布尔赋值 flase 等。

判断语句

判断的格式如下:

if [条件] {
    ...
} else if [条件] {
    ...
} else {
    ...
}

注意: Golang不支持三元运算符。

switch语法

第一种格式:

switch [条件] {
    case [值], [值..]:
        ...
    case [值]:
        ...
    ...
    default:
        ...
}

第二种格式:

switch {
    case [条件]:
        ...
    ...
    default:
        ...
}

循环

golang的循环语句通过 for 来实现, golang 没有提供 while 和 do while 的循环形式。

  1. 死循环
for {
    ...
}

for true {
    ...
}
  1. for 只带一个条件语句相当于 while 语句。带三个语句就是普通的 for 循环。
  2. golang可以通过 continue (跳出本次循环) 和 break (跳出循环) 控制循环体。
  3. golang支持 goto 语句, 不过建议不要使用,会使程序变得难以阅读。

数组

数组定义

示例:

var X = [3]int {1, 2, 3} 
var X [3]int =[3]int{1, 2, 3}
X := [3]int{1, 2, 3}
数组访问
package main
import "fmt"
func main() {
    var squares [9]int
    for i := 0; i < len(squares); i++ {
        squares[i] = (i+1)*(i+1)
    }
}

golang会对数值下标越界进行检查。
数组的赋值本质是一种浅拷贝,即赋值的两个数组变量的值不会共享。

package main
import "fmt"
func main() {
    var a = [9]int{1, 2, 3, 4}
    var b [9] int
    b = a
    a[0] = 123
    fmt.Println(a) //[123 2 3 4]
    fmt.Println(b) //[1 2 3 4]
}

不同长度的数组之间赋值时禁止的。

数组遍历
var a = [5]int{1, 2, 3, 4, 5}

for index := range a {
    fmt.Println(index, a[index)
}

for index, value := range a {
    fmt.Println(index, value)
}

本文总结自公众号 码洞,微信号:codehole。

转载于:https://my.oschina.net/ptczy/blog/2876351

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
GoLang学习笔记主要包括以下几个方面: 1. 语法规则:Go语言要求按照语法规则编写代码,例如变量声明、函数定义、控制结构等。如果程序中违反了语法规则,编译器会报错。 2. 注释:Go语言中的注释有两种形式,分别是行注释和块注释。行注释使用`//`开头,块注释使用`/*`开头,`*/`结尾。注释可以提高代码的可读性。 3. 规范代码的使用:包括正确的缩进和空白、注释风格、运算符两边加空格等。同时,Go语言的代码风格推荐使用行注释进行注释整个方法和语句。 4. 常用数据结构:如数组、切片、字符串、映射(map)等。可以使用for range遍历这些数据结构。 5. 循环结构:Go语言支持常见的循环结构,如for循环、while循环等。 6. 函数:Go语言中的函数使用`func`关键字定义,可以有参数和返回值。函数可以提高代码的重用性。 7. 指针:Go语言中的指针是一种特殊的变量,它存储的是另一个变量的内存地址。指针可以实现动态内存分配和引用类型。 8. 并发编程:Go语言提供了goroutine和channel两个并发编程的基本单位,可以方便地实现多线程和高并发程序。 9. 标准库:Go语言提供了丰富的标准库,涵盖了网络编程、文件操作、加密解密等多个领域,可以帮助开发者快速实现各种功能。 10. 错误处理:Go语言中的错误处理使用`defer`和`panic`两个关键字实现,可以有效地处理程序运行过程中出现的错误。 通过以上内容的学习,可以掌握Go语言的基本语法和编程思想,为进一步学习和应用Go语言打下坚实的基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Golang学习笔记](https://blog.csdn.net/weixin_52310067/article/details/129467041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [golang学习笔记](https://blog.csdn.net/qq_44336275/article/details/111143767)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值