配置开发环境

开始使用Go,首先需要一个完善的开发环境。

下载并安装Go

安装包的下载地址为:https://golang.org/dl/

go语言中文社区下载:https://studygolang.com/dl

Windows系统安装后,可以在命令行输入 go命令来查看是否正确安装,并使用go version来查看安装版本。

hello.go

package main

import (
"fmt"
) func main() {
var x string = "Hello World!! By Go"
fmt.Println(x) }

使用go命令go run hello.go运行上述代码,输出结果如下:

PS E:\WorkSpace\go> go run .\hello.go
Hello World!! By Go

Go语言代码结构

Go语言的基础组成部分有:包声明、引入包、函数、变量、语句、注释。

  1. 上述代码的第一行packaga main包声明,必须在源文件中的非注释第一行指明这个文件属于哪个包。

    关于包名:

    • go的package不局限一个文件,可以由多个文件组成
    • go不要求package的和所在目录名相同,但最好是保持相同,否则容易引起歧义。
    • 每个子目录中只能存在一个package,否则编译报错
    • 每一个package下的多个文件中只能有一个main()函数
    • 每个go程序都必须包含一个package main,且package main必须包含一个func main
  2. 下一行代码中import "fmt"包的引入,这里导入Go程序所需要的fmt包,fmt包实现了格式化IO(输入/输出)的函数

    • 单行导入

      import "pkg1"
      import "pkg2"
    • 多行导入

      import(
      "pkg1"
      "pkg2"
      )
    • import "fmt" //最常用的导包方式
      import "./pkg1" //导入同一目录下pkg1包中的内容
      import f "fmt" //导入fmt,并重命名为f;可以用于区分同名包,或简化较长包名
      import . "fmt" //导入fmt,启用别名".",这样可以直接引用包把内容,不需要再添加fmt。例如,fmt.Println() --写为--> Printlf()
      import _ "pkg1" //匿名导入包,只导入包结构以及init()函数,但不使用包内类型和数值。且在import时就执行pkg1包的init()函数。
  3. 下一行的func main()是程序开始执行的函数。main函数是每一个可执行程序必须包含的,一般来说都是会在启动后第一个执行的函数(如果有init()函数则会先执行该函数)

  4. 下一行的//这是一个注释注释内容,在程序执行时会忽略。

  5. 下一行代码声明了一个string型变量

  6. 下一行fmt.Println(),这是一条代码语句,会将字符串输出到带控制台,并自动换行。

Go语言基础语法

Go行分隔符

在Go程序中,一行代码代表一行语句,每个语句也不需要以;结尾;如果将多条语句写在同一行,则必须使用人为区分,但是一般也不推荐这种做法。

注释

注释不会被编译,每一个包都应该有一个注释。

//单行注释是最常见的注释形式,可以在任何地方的开头使用单行注释

/*
多行注释或块注释
*/

关键字

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

标识符

标识符是用来命名变量、类型等程序实体。与其他变成语言一样,一个标识应符由一个或多个字母A~Z和a~z数字0~9、下划线_组成。标识符的第一个字符不能为数字。标识符不能为关键字。

name age user_name user_123  a _user  这些都是有效的标识符

变量

变量声明

变量的声明方式有两种,并且对Go语言,变量的声明要把变量类型放在变量名之后的。例如:

//Go语言的变量声明必须用空格隔开
//方式一
var x string = "hello world"
var z int = 12
//方式二
x := string("hello world")
z := int(12)

但是Go语言也可以不指定数据类型,系统将会根据赋值自动判断数据类型。例如:

var x = "hello world"
z := int(12)

在上述第一个示例中,使用关键字var定义名为x的变量hell world。Go会隐式推断x为字符串。在第二个示例中,使用:=运算符定义一个名为z的新变量,并赋值为整数12。

注意,当你没有声明变量类型时,你就必须接受系统自动推断的类型。另外当你的便令已经被声明之后,是不可以使用:=再赋值的,想要修改已经赋值变量的值需要用=。最后:=不可以用来给全局变量赋值

多变量的声明

//类型相同多个变量,非全局变量
var name1,name2,name3 type
name1,name2,name3 = v1,v2,v3
//也可以不指定变量类型
var name1,name2,name3 = v1,v2,v3 //因式分解形关键字的写法一般用于声明全局变量
var (
name type1 = value1
age type2 = value2 )

变量作用域

Go使用大写字母确定作用域,以大写字母开头的变量可以在包外部导出并访问(类似于java中的public),而小写字母开头的变量都是私有的,只能活在包内部访问。

常量

相同的常量的定义也需要将类型放在标识符之后。常量的定义格式:

const 常量名 [type] = value

同样,对于常量你也可以省略类型[type],编译器会根据值推断其类型。例如:

//显式定义
const a string = "hello"
//隐式定义
const a = "hello"

Go语言基础一:环境配置与基础语法的更多相关文章

  1. [Android] 环境配置之基础开发环境(SDK/Android Studio)(转)

    [Android] 环境配置之基础开发环境(SDK/Android Studio)   博客: blog.csdn.net/qiujuer 网站: www.qiujuer.net 开源库: Geniu ...

  2. go 语言开发1 环境配置和语言基础

    Go 语言环境配置 windows 环境变量: 设置 GOROOT (安装路径),GOPATH(工程目录) Path 中加入 %GOROOT%/bin 和 %GOPATH%/bin mac 环境变量: ...

  3. Android 开发基础及环境配置

    2011年买了第一部安卓操作系统的手机,当时势头正盛的HTC不可思议(incredible),当时的想法就是想学习下智能手机开发,但是由于各种原因,客观上是公司的项目太忙了,忙于项目管理.团队建设.客 ...

  4. Vue基础(环境配置、内部指令、全局API、选项、内置组件)

    1.环境配置 安装VsCode 安装包管理工具:直接下载 NodeJS 进行安装即可,NodeJS自带 Npm 包管理工具,下载地址:https://nodejs.org/en/download/安装 ...

  5. 1.python环境配置 - python基础入门

    工欲善其事必先利其器,python学习首先要做得就是配置python环境.配置环境只需要下载Pycharm 和 Anaconda两个安装包即可,请跟上我得步伐,一步一步操作. 重要的事情说三遍: 先安 ...

  6. Golang(go语言)开发环境配置

    VSCode开发环境配置 目录 VSCode开发环境配置 先到VSCode官网去下载适合自己系统的VSCode安装软件 演示在WIndows下 安装使用 演示在Linux(Ubuntu/centos) ...

  7. 带你学够浪:Go语言基础系列-环境配置和 Hello world

    文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 前面几周陆陆续续写了一些后端技术的文章,包括数据库.微 ...

  8. spring boot 基础 多环境配置

    对于多环境的配置,各种项目构建工具的思路基本上一致,都是通过配置多份不同环境的配置文件来区分. 1. 首先我们先创建不同环境下的属性文件,截图如下: application.properties  是 ...

  9. Android Studio1.4.x JNI开发基础-基本环境配置

    从Eclipse时代到Android Studio普及,开发工具越来越好用.早些时候还需要安装Cygwin工具,从Android Studio1.3以后,在Android 环境开发JNI程序搭建开发环 ...

随机推荐

  1. Java学习笔记-基础语法Ⅵ-异常

    异常 对于异常,JVM默认处理方案为:把异常名称.异常原因以及异常出现的位置等信息输出在控制台,并且程序停止执行 异常处理方式一:try ... catch public class Demo { p ...

  2. 拯救一切强迫症 - 读《编写可维护的 JavaScript》(一)

    拯救一切强迫症 - 读<编写可维护的 JavaScript>(一) 本文写于 2020 年 4 月 24 日 我在小学的时候就有接触过编程,所以读大一的时候 C 语言还算是轻车熟路.自然会 ...

  3. Elasticsearch高级之-集群搭建,数据分片

    目录 Elasticsearch高级之-集群搭建,数据分片 一 广播方式 二 单播方式 三 选取主节点 四 什么是脑裂 五 错误识别 Elasticsearch高级之-集群搭建,数据分片 es使用两种 ...

  4. Vue的computed和watch的使用和区别

    一.computed: 模板内表达式非常便利,可用于简单计算,当模板内放入太多的逻辑时,模板会过重且难以维护:可以使用computed替代 计算属性是基于它们的响应式依赖进行缓存的,当依赖的响应式数据 ...

  5. 好客租房39-react组件基础总结

    1组件的两种创建方式:函数组件和类组件 2无状态函数组件 负责静态结构展示 3有状态组件 负责更新ui 让页面动起来 4绑定事件注意this指向问题 5使用受控组件创建表单 6完全利用js语言的能够力 ...

  6. ML第7周学习小结

    本周收获 总结一下本周学习内容: 1.学习了<深入浅出Pandas>的第六章:Pandas分组聚合 6.4 聚合统计 6.5 数据分箱 6.6 分组可视化 博客: pandas:聚合统计. ...

  7. vue面试总结-2022

    1.vue生命周期及各周期得特点 beforCreate 特点: 初始化实例,不能使用data和methods.ref 示例 beforeCreate: function () { console.g ...

  8. 题解0014:信奥一本通1472——The XOR Largest Pair(字典树)

    题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1472 题目描述:在给定的 N 个整数中选出两个进行异或运算,求得到的结果最大是多少. 看到这 ...

  9. 毕设(1)——机械臂DH建模

    目录 毕设(1)--机械臂DH建模 改进DH参数表 Matlab代码验证 毕设中用到了很多代码,其中一部分我通过看书和看论文学习并实现的代码,会通过Gitee仓库分享出来,这些代码仅用于学习使用,祝各 ...

  10. LVS+keepalived简单搭建(二)

    在LVS1的基础上进行搭建 https://www.cnblogs.com/hikoukay/p/12860476.html keeplived主机 用node01,node04两台 先清掉原先nod ...