Go语言的学习【2】基础语法

代码组成部分

Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。

在 Go 程序中,一行代表一个语句结束。

如果你打算将多个语句写在同一行,它们则必须使用" ; "人为区分。

标识符和C语言的定义一样。

字符串

Go 语言的字符串连接可以通过 + 实现

package main
import "fmt"
func main() {
    
    
    fmt.Println("Google" + "Runoob")
}

在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性。

Go 语言中变量的声明必须使用空格隔开。

在关键字和表达式之间要使用空格。

在函数调用时,函数名和左边等号之间要使用空格,参数之间也要使用空格。
例如:

result := add(2, 3)

格式化字符

Go 语言中使用 fmt.Sprintf 或 fmt.Printf 格式化字符串并赋值给新串:

  • Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。
  • Printf 根据格式化参数生成格式化的字符串并写入标准输出。
    举例:
package main

import (
    "fmt"
)

func main() {
    
    
   // %d 表示整型数字,%s 表示字符串
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}
package main

import (
    "fmt"
)

func main() {
    
    
   // %d 表示整型数字,%s 表示字符串
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    fmt.Printf(url,stockcode,enddate)
}

数据类型

数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

没列举的都可以按照C语言或python的数据类型去理解。
在这里插入图片描述

变量

变量可以通过变量名访问。

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

声明变量的一般形式是使用 var 关键字,可以一次声明多个变量。

var 变量名 类型

例如:

package main
import "fmt"
func main() {
    
    
    var a string = "Runoob"
    fmt.Println(a)

    var b, c int = 1, 2
    fmt.Println(b, c)
}

https://www.runoob.com/go/go-variables.html

变量声明

第一种,指定变量类型,如果没有初始化,则变量默认为零值。零值就是变量没有做初始化时系统默认设置的值。

第二种,根据值自行判定变量类型。

第三种,如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式:

package main
import "fmt"
func main() {
    
    

    // 声明一个变量并初始化
    var a = "RUNOOB"
    fmt.Println(a)

    // 没有初始化就为零值
    var b int
    fmt.Println(b)

    // bool 零值为 false
    var c bool
    fmt.Println(c)
}

在这里插入图片描述

数值类型(包括complex64/128)为 0

布尔类型为 false

字符串为 “”(空字符串)

intVal := 1 相等于:

var intVal int 
intVal =1 

再举个例子:
可以将 var f string = “Runoob” 简写为 f := “Runoob”:

package main

import "fmt"

func main() {
    
    
	var i int
	var f float64
	var b bool
	var s string
	fmt.Printf("%v %v %v %q\n", i, f, b, s)
}

在这里插入图片描述

package main

import "fmt"

func main() {
    
    
	var d = true
	fmt.Println(d)
}

在这里插入图片描述

package main

import "fmt"

func main() {
    
    
	f := "Runoob" // var f string = "Runoob"

	fmt.Println(f)
}

在这里插入图片描述

多变量声明

语法实例(不能运行的)

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误


// 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)

可运行的代码:

package main
import "fmt"

var x, y int
var (  // 这种因式分解关键字的写法一般用于声明全局变量
    a int
    b bool
)

var c, d int = 1, 2
var e, f = 123, "hello"

//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"

func main(){
    
    
    g, h := 123, "hello"
    println(x, y, a, b, c, d, e, f, g, h)
}

在这里插入图片描述

值类型和引用类型

参考C语言的指针。

遇到的问题及解决办法

1

[{
“resource”: “/d:/coding2022/Go_1/test.go”,
“owner”: “generated_diagnostic_collection_name#1”,
“severity”: 8,
“message”: “gopls was not able to find modules in your workspace.\nWhen outside of GOPATH, gopls needs to know which modules you are working on.\nYou can fix this by opening your workspace to a folder inside a Go module, or\nby using a go.work file to specify multiple modules.\nSee the documentation for more information on setting up your workspace:\nhttps://github.com/golang/tools/blob/master/gopls/doc/workspace.md.”,
“source”: “go list”,
“startLineNumber”: 1,
“startColumn”: 1,
“endLineNumber”: 1,
“endColumn”: 13
}]
https://blog.csdn.net/wsi__/article/details/127348785

关于vscode中出现gopls was not able to find modules in your workspace报错的解决方案

https://blog.donstpast.cn/index.php/archives/123/

在Go的安装目录就可以。因为有go.mod文件。
在这里插入图片描述
好吧,我该学一学VScode怎么配置不冲突的工作区了
https://blog.csdn.net/weixin_39775872/article/details/111133360

https://www.yii666.com/blog/226898.html

用户设置与工作空间设置
VS Code提供了两种设置方式:

  • 用户设置: 这种方式进行的设置,会应用于该用户打开的所有工程;
  • 工作空间设置:工作空间是指使用VS Code打开的某个文件夹,在该文件夹下会创建一个名为.vscode的隐藏文件夹,里面包含着仅适用于当前目录的VS Code的设置,工作空间的设置会覆盖用户的设置。

每个人都有自己的偏好,在使用VS Code进行开发时,都会根据自己的习惯来对VS Code进行用户级别的配置。
但是当多人共同完成某个项目的时候,该项目会有一定的编码规范,如: 编辑某个语言时的设置,代码的缩进等等,这个时候就需要对该项目进行单独的工作空间级别的设置。

更改默认用户设置与工作空间设置
VS Code的设置文件为setting.json。用户设置的文件保存在如下目录:

-Windows%APPDATA%CodeUsersettings.json

-Linux$HOME/.config/Code/User/settings.json

工作空间设置的文件保存在当前目录的.vscode文件夹下。

修改默认设置的两种方式

  • 使用编辑器直接打开setting.json文件进行设置;
  • 点击 VS Code 的文件 > 首选项 > 设置,可以打开设置面板进行设置;

⭐⭐⭐ https://www.swvq.com/article/detail/5238 ⭐⭐⭐

https://www.jianshu.com/p/d69a06c4dd01

https://www.runoob.com/go/go-variables.html

报错1

command-line-arguments
.\1.go:34:8: "fmt" imported and not used

问题原因:
main 包中的不同的文件的代码不能相互调用,其他包可以。所以其实student.go没有被一起编译执行。

问题解决:
用了在线的编辑器 https://goplay.tools/

猜你喜欢

转载自blog.csdn.net/CSDN_YJX/article/details/130774044