Go语言基础入门第二章

news2024/11/26 1:54:37

Go语言环境安装

下载地址:https://golang.google.cn/dl/

请添加图片描述

下载完安装包直接安装即可,安装完毕后,打开cmd控制台,输入”go version“查看是否安装成功以及对应安装版本。

请添加图片描述

配置环境变量

Go语言需要一个安装目录,还需要一个工作目录,即GOROOT、和GOPATH。

GOROOT就是刚才的安装目录,GOPATH是自己新建的目录(存储Go语言项目的目录)。

请添加图片描述

Path变量下新增以下配置:

请添加图片描述

Go语言第一个程序

package main

func main() {
   println("Hello World")
}

请添加图片描述

注释

与Java注释基本相同,分为单行注释和多行注释。

package main

/*
多行注释
多行注释
多行注释
 */
func main() {
   //单行注释
   println("Hello World")
}

变量

变量也就是一个可以变化值的对象。比如定义一个变量叫做name,那这个name的值可以是张三也可以是罗教授。这个name就是一个变量。

var name string = "张三";
var age int = 12;

Go语言有一个特点就是声明变量可以不指定变量的数据类型,编译器会通过等号右边的值的类型来判断变量的数据类型。

var name = "张三";
var age = 12;

变量交换

先看一下Java变量交换:

package main

func main() {
   int a = 100
   int b = 200
   int temp = a;
    a = b;
    b = temp;
}

Go语言的变量交换:

package main

func main() {
   var a = 100
   var b = 200
   //a, b = b, a
   b, a = a, b
   println(a, b)
}

匿名变量

匿名变量的特点是一个下画线"“,”"本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。例如:

package main

func test() (int, int) {
   return 100, 200
}

func main() {
   a, b := test()
   println(a, b)
   a, _ = test()
   println(a)
}

请添加图片描述

在编码过程中,可能会遇到没有名称的变量、类型或方法。虽然这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称
为匿名变量。
匿名变量不占用内存空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。

变量的作用域

一个变量(常量、类型或函数)在程序中都有一定的作用范围,称为作用域。
了解变量的作用域对我们学习Go语言来说是比较重要的,因为Go语言会在编译时检查每个变量是否使用过,一旦出现未使用的变量,就会报编译错误。如果不能理解变量的作用域,就有可能会带来一些不明所以的编译错误。

局部变量

在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,函数的参数和返回值变量都属于局部变量。

全局变量

全局变量就是只要在一个源文件中定义,就可以在所有源文件中使用。当然,不包含这个全局变量的源文件只需要使用“import”关键字引入全局变量所在的源文件之后才能使用这个全局变量。

全局变了声明必须以var关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。

package main

//全局变量
var c int

func main() {
    //局部变量
   var a = 3
    //局部变量
   var b = 4
   c = a + b
   println(a, b, c)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud_Eureka服务注册与发现

目录一、Eureka基础知识1.什么是服务治理2.什么是服务注册3.Eureka两组件二、单机Eureka构建步骤1.IDEA生成eurekaServer端服务注册中心2.服务提供者3.服务消费者代码链接 https://github.com/lidonglin-bit/cloud 一、Eureka基础知识 1.什么是服务治理 SpringCloud封装了Ne…

金融风控09

迁移学习 为什么要? 源域样本与目标域样本分布有区别,目标域样本量不够 平时建模用的迁移学习场景 1、新开某个消费分期场景样本量少,需要用其他场景的数据建模 2、业务被迫停滞3个月再重启,大部分训练样本比较老旧&#xff…

含分布式光伏的配电网集群划分和集群电压协调控制(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

激光在大气中传输特性

在光纤通信中,单模光纤在波长1.55μm窗口具有巨大的潜在带宽和极低的损耗,传输数字信号的容量已能达到10Tb/s,每信道光源功率仅需1mW左右,无中间放大的距离超过100km。而且,光纤作为光波导,红外…

PostSharp Ultimate添加模式和线程安全

PostSharp Ultimate添加模式和线程安全 PostSharpUltimate允许开发人员通过将重复的工作从人身上转移到机器上,从而消除样板代码。它包含最常见模式的现成实现,并为您提供了为自己的模式构建自动化的工具。开发人员通常根据设计模式进行思考,…

Go语言基础入门第一章

Go语言基础入门 Go语言的logo 为什么需要一个新的语言最近十年来,C/C在计算机领域得到了很好的发展,并没有新的系统编程语言出现。对开发程度和执行效率在很多情况下并不能兼得。要么是执行效率高,但是低效的开发和编译,如C&…

Redux Toolkit + React + Tailwind CSS 学习心得

Redux Toolkit React Tailwind CSS 学习心得 预览地址:https://goldenaarcher.com/movie-app-home-only,只实现了一个简单的首页功能,API 用的是 the Movie Database,不想用 API 的也可以装一个 faker-js/faker 用来随机生成伪…

学生护眼灯怎么选择?分享适合学生的护眼灯

现阶段的青少年与儿童的近视率非常高,选择一款好的台灯能够保证双眼的健康,首先先看亮度是否合理,不能刺眼,选择三基色灯管,光很柔和,看频闪,好的护眼台灯可以做到无可视频闪,是的视…

移动web适配和Less

移动web适配和Lessrem 适配rem 单位媒体查询flexible.js如何把设计稿的px转换为remLESSLess注释less 运算less 嵌套less 变量less导入less 导出控制当前Less文件导出less 禁止导出小结rem 适配 rem 单位 rem 是一个相对单位,1rem 就是 html 文字的大小 比如 /* …

Java基础10:常用API

Java基础10:常用API一、Math二、System1. currentTimeMillis2. arraycopy三、Runtime四、Object1. toString2. equals3. clone五、Objects六、BigInteger1. 构造方法(获取BigInteger)2. 常用方法七、BigDecimal1. 构造方法(获取Bi…

计算机相关专业混体制的解决方案(考公务员)

文章目录序:编制介绍1、公务员报考要求2、公务员工作待遇3、公务员工作内容4、公务员报考复习序:编制介绍 编制介绍:编制,也就是常说的铁饭碗。 编制的诞生为了控制吃财政饭的人员数量无限膨胀而设置的,所以名额有限受…

密码学基本概念

密码学简介 密码是经过加密过后的口令,是指用特定的变换对数据信息进行加密保护或者安全身份认证的物质和技术,密码学是对安全通信技术的研究,要能够有效的防范潜在攻击,也就是对信息加密解密的过程。 密码基本性质 密码学的发展…

CSS3 选择器 :nth-child 与 :nth-of-type 区别

一、:nth-child 1.1 说明 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素&#xff0c;不论元素的类型。n 可以是数字、关键词或公式。 注意&#xff1a;如果第 N 个子元素与选择的元素类型不同则样式无效&#xff01; 1.2 示例 <style> div>p:nth-child(2…

1行Python代码识别身份证信息,还能自动告警,YYDS

大家好&#xff0c;这里是程序员晚枫。 录入身份证信息是一件繁琐的工作&#xff0c;如果可以自动识别并且录入系统&#xff0c;那可真是太好了。 今天我们就来学习一下&#xff0c;如何自动识别身份证信息并且录入系统~ 识别身份证信息 识别身份证信息的代码最简单&#x…

【金融量化】CTA策略之VeighNa量化实战笔记(1)

量化投资实战笔记 1 基本概念 1、一手股票&#xff1a;100支股票 2、收盘比开盘上涨的百分比&#xff1a;&#xff08;收盘-开盘&#xff09;/开盘 3、开盘比前日收盘的百分比&#xff1a;&#xff08;开盘-前日收盘&#xff09;/前日收盘 4、从dataframe中取每个月的第一天 …

Hgame-week 1(部分)

标题MISCSing InWhere am I神秘的海报e99p1ant_want_girlfriendWEDClassic Childhood Game改源码直接看jsBecome A MemberUser-Agent:Cookie:Referer:X-Forwarded-For:json请求方式登陆Guess Who I AmCRYPTO神秘的电话注意大小写REVERSEtest your IDAMISC Sing In aGdhbWV7V2…

【GPLT 二阶题目集】L2-027 名人堂与代金券

对于在中国大学MOOC&#xff08;http://www.icourse163.org/ &#xff09;学习“数据结构”课程的学生&#xff0c;想要获得一张合格证书&#xff0c;总评成绩必须达到 60 分及以上&#xff0c;并且有另加福利&#xff1a;总评分在 [G, 100] 区间内者&#xff0c;可以得到 50 元…

二十、Gtk4-GtkMenuButton, accelerators, font, pango and gsettings

本节将重新构造Tfe文本编辑器。 在工具栏上放置了打开、保存和关闭按钮。此外&#xff0c;GtkMenuButton被添加到工具栏中。当点击这个按钮时会显示一个弹出式菜单。在这里&#xff0c;弹出式的含义很广泛&#xff0c;包括下拉式菜单。新建、另存为、偏好和退出项目被放入菜单…

Java IO流之序列化流

序列化流/对象操作输出流 可以把Java中的对象写到本地文件中 序列化流的小细节 使用对象输出流将对象保存到文件时会出现NotSerializableException\color{#FF0000}{NotSerializableException}NotSerializableException 异常 解决方案&#xff1a;需要让JavaBean类实现Serializa…

【树】二叉树递归遍历和创建

二叉树的遍历二叉树的遍历是将二叉树的每个结点访问且访问一次遍历按根来说常用三种设访问根结点记作V&#xff0c;遍历根的左子树记作L&#xff0c;遍历根的右子树记作R&#xff1b;有&#xff1a;先序遍历VLR&#xff0c;中序遍历LVR&#xff0c;后序遍历LRV。这个遍历是递归…