目录

  • 代码组成部分
  • 字符串
  • 格式化字符
  • 数据类型
  • 变量
    • 变量声明
    • 多变量声明
    • 值类型和引用类型
  • 遇到的问题及解决办法
    • 1
    • 报错1

代码组成部分

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 mainimport ("fmt"
)func main() {// %d 表示整型数字,%s 表示字符串var stockcode=123var enddate="2020-12-31"var url="Code=%d&endDate=%s"var target_url=fmt.Sprintf(url,stockcode,enddate)fmt.Println(target_url)
}
package mainimport ("fmt"
)func main() {// %d 表示整型数字,%s 表示字符串var stockcode=123var 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, 2fmt.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 intfmt.Println(b)// bool 零值为 falsevar c boolfmt.Println(c)
}

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

布尔类型为 false

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

intVal := 1 相等于:

var intVal int
intVal =1

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

package mainimport "fmt"func main() {var i intvar f float64var b boolvar s stringfmt.Printf("%v %v %v %q\n", i, f, b, s)
}

package mainimport "fmt"func main() {var d = truefmt.Println(d)
}

package mainimport "fmt"func main() {f := "Runoob" // var f string = "Runoob"fmt.Println(f)
}

多变量声明

语法实例(不能运行的)

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误// 这种因式分解关键字的写法一般用于声明全局变量
var (vname1 v_type1vname2 v_type2
)

可运行的代码:

package main
import "fmt"var x, y int
var (  // 这种因式分解关键字的写法一般用于声明全局变量a intb 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/

Go语言的学习【2】基础语法相关推荐

  1. python学习三-基础语法

    python学习三-基础语法(2019-12-24日晚) 1.源码文件 Python源码文件名通常采用小写的方式,常见的扩展名有: py:基本的源码扩展名. pyw:是另一种源码扩展名,跟py唯一的区 ...

  2. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?

    ---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...

  3. idea编译的文件怎么用cmd打开_JAVA学习册|基础语法|cmd输出HelloWorld

    看到这个标题,估计已经有小伙伴知识本文要讲什么了,好,下面我们就开始正文 学java最开始的地方 很多老师的书和视频中,在安装完jdk,配置好环境变量,都会带大家用记事本写一个HelloWorld,然 ...

  4. Go 语言快速开发入门(基础语法详解,第一节)

    Go 语言快速开发入门(基础语法详解,第一节) 一.基础语法详解,第一节 1.HelloWorld 1.1.代码编写和解释 1.2.go语言注意事项 2.Go 语言的转义字符&&Go ...

  5. C语言代码示范与讲解+C语言编程规范及基础语法+编程实战

    上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...

  6. Scala语言学习一——基础语法

    什么是 Scala Scala 是一种多范式的编程语言, 其设计的初衷是要集成面向对象编程和函数式编程的各种 特 性 . Scala 运 行 于 Java 平 台 (Java 虚 拟 机 ) , 并 ...

  7. 【python零基础入门学习】Python入门,带你快速学习Python 基础语法

    ython 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程. 第一个 Python ...

  8. 【Drools二】打工人学习Drools基础语法

    目录 0.项目搭建 1. 规则文件 1.1 构成 1.2规则体 2.基础语法 2.1 注释 2.2 Pattern模式匹配 2.3比较操作符 2.3.1 实践 2.3执行指定规则 3.Drools内置 ...

  9. 0基础学习Python基础语法(0)-print()与变量

    文章目录 Python[人工智能]时代的立身武器 print 无引号 单引号的用法 双引号的用法 三引号的用法 转义字符 变量和赋值 变量的命名规范 下关预告 Demo 例子:打印 例子:转义字符 要 ...

  10. MySQL学习之基础语法详解

    这篇记录一下MySQL的基础语法 DDL数据定义语言 主要是针对数据库,表,列的操作,即创建,查询,修改,删除 查询所有数据库 show databases; 创建数据库 create databas ...

最新文章

  1. java数据库连接的作用_java数据库连接池的作用
  2. java端模拟http的get、post请求(转)
  3. deltasql 1.6.0 发布,数据库模型版本控制
  4. 洛谷1231 教辅的组成
  5. 【BZOJ4034】T2,树链剖分练习
  6. 用python实现一个按需生成用于vim跳转的tags文件的小程序
  7. CentOS中VMware tools的安装以及安装失败的解决办法,java架构师视频课程
  8. 父子/父孙传参(Provide/inject方式)
  9. 在苹果Mac的Dock中如何添加AirDrop快捷方式?
  10. 这届618:商家全渠道作战,天猫仍是主场
  11. java定义一个getsize方法_java.util.zip.ZipEntry.getSize()方法示例
  12. 进销存货物管理系统 论文
  13. 【IVI】5. [Android Automotive]音频多区
  14. JUCE学习笔记07-自定义正弦振荡器类
  15. 计算机很多术语都是cat,18 个开源翻译工具帮助你的项目本地化
  16. adb填充安卓手机的内存
  17. 《unix环境高级编程》--- 终端I/O
  18. PXE-E61: Media test failure, check cable PXE-M0F: Exiting Intel Boot Agent. 解决方法
  19. 计算机网络公众号,计算机网络中写公众号文章的软件有哪些
  20. Java OpenCV-4.0.0 图像处理11 自定义图像滤波(降噪) 算子

热门文章

  1. 我其实一直都懂你|闲鱼聊天机器人
  2. 卷积神经网络:(二)风格迁移——原理部分
  3. 励志|北大保安哥再上热搜!我连夜翻开了自己的书
  4. 微信小程序考勤管理系统
  5. 连接WiFi需要短信验证怎么做?
  6. 博弈论——浙江大学蒋文华笔记
  7. 我眼中Citrix在云时代的价值与位置 ---- 我的封笔之作
  8. lcl手术和飞秒区别_ICL晶体植入术与“全飞秒”手术的区别!
  9. 探索云原生之“翻译翻译,什么是云原生”
  10. 从德国勒索软件活动看恶意代码的生存方式-云栖社区-阿里云