Go语言学习的第三天--上部分(基础用法)

news2025/7/19 14:29:24

前两天经过不断度娘,与对up主的跟踪学习了解了go的历史,今天开始了go的基础!!

本章主要是go 的注释、变量及常量的梳理

一、注释

不管什么语言都有自己的注释,go也不例外 !!

单行注释  //
多行注释 
/**
代码段
*/

这二者的用法就不扯了,别的语言都是有的。

但是我要强调一点,在开发过程中良好的注释会让开发者赏心悦目,逻辑清晰,要养成良好注释的习惯

二、变量 驼峰命名

1、变量类型 格式: var name type

/**   格式: var name type
    var   声明变量
    name  变量名
    type  变量类型
    */
  var name string = "bianliang"
  var age int = 18
  fmt.Println(name, age)

2、定义多个变量

  /**
    定义多个变量
    如果没有赋值,每个类型有默认值
    string默认为空
    int默认为空
    */
    var (
        name string
       age  int
       addr string
    )
    fmt.Println(name, age, addr)
    //变量赋值
   name = "lainxi"
   age = 18
   addr = "广西"
   fmt.Println(name, age, addr)

3、:=短变量

   /**
    通过 := 定义 自动推到 初始化 短变量
    如果已经通过var 定义过变量在使用 := 打印时会报错已经不是心得变量
    */
    name := "ceshi"
    age := 18
    fmt.Println(name, age)
    fmt.Printf("%T,%T", name, age) //打印变量数据类型 内存地址

4、内存地址

  /**
    内存地址 %p
    */
    var num int
    num = 100
    fmt.Printf("name: %d ,内存地址:%p", num, &num) //&取地址符
    num = 200
    fmt.Printf("name: %d ,内存地址:%p", num, &num) //值会改变,内存地址不会改变

5、变量交换

/**
    变量交换
    a = 100
    b = 200
    a、b值交换
    其他语言:
      定义中间量 t = 0
      t = a
      a   = b
      b   = t
    */
    var a int = 100
    var b int = 200
    b, a = a, b //go中两值交换
    fmt.Println("a=====>", a, "  b===>", b)

6、匿名变量

func main(){
 /**
    匿名变量
    */
    //a, b := test()
    //fmt.Println("a=====>", a, "  b===>", b)
    a, _ := test() // 只想接受一个值
    fmt.Println("a=====>", a)}  

func test() (int, int) {   //定义test函数
    return 100, 200
}

7、变量作用域

/**
    变量的作用域
    局部  在某一个函数中定义的 变量
    全局  函数外定义的
    变量名可以重复使用但当打印的时候就近原则
    */

三、常量 通过const 进行定义

1、常量类型 格式: const name type

/**
 定义格式: const name type
  const  声明常量
  name   常量名
  type   常量类型 (可省略)
*/

const name string = "ceshi" //显示定义
const name2 = "lalal"       //隐式定义  将字段类型隐藏起来
fmt.Println(name, name2)   //打印

2、多常量定义

const a, b, c = 1, 2, 3     //多常量定义 逗号隔开
fmt.Println(a, b, c)

打印结果:

3、特殊常量ioty 常量计数器 iota 在const关键词出现时将被重置为0

const (
        a = iota
        b = iota
        c
        d
        e
        f
        g = 100
        h
        i = iota
    )
    fmt.Println(a, b, c, d, e, f, g, h, i)

大家猜一猜打印出来是是什么????动手试试

一定要动手试试 ,好记性不如烂笔头!!!熟能生巧 一定要多练习

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

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

相关文章

22- Pytorch实现天气分类 (Pytorch系列) (项目二十二)

项目要点 4种天气数据的分类: cloudy, rain, shine, sunrise.all_img_path glob.glob(rG:\01-project\08-深度学习\day 56 迁移学习\dataset/*.jpg) # 指定文件夹 # import glob获取随机数列: index np.random.permutation(len(all_img_path))建立数组和索引的关…

Java操作数据库基本原理

- 四年前存稿 Java操作数据库基本原理概述 全称Java Database Connectivity,Java的数据库连接,使用Java语言操作数据库,定义了操作所有关系型数据库规则(接口) 使用步骤 我的mysql是8版本的,使用jar包时必须使用8版本的&#x…

6年Android开发最终被优,事后加入车载开发,开启新起点~

如今传统Android 开发行业的岗位越发紧张了,经过去年一些互联网大厂的部门人员优化、开源截流等操作,加快了内卷的速度,原本坐山观虎斗我,没想到也被卷入其中。 1. Android 开发6年,无情中招 就去年年底,…

RZ/G2UL核心板-40℃低温启动测试

1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计,一路千兆网口、一路CAN-bus、 3路TTL UART、LCD、WiFi、CSI 摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。HD-G2UL-CORE系列工业级核…

铁路与公路

蓝桥杯集训每日一题acwing4074 某国家有 n 个城市(编号 1∼n)和 m 条双向铁路。 每条铁路连接两个不同的城市,没有两条铁路连接同一对城市。 除了铁路以外,该国家还有公路。 对于每对不同的城市 x,y,当且仅当它们之…

Mars3D美丽乡村系统发布

近日,我们基于Mars3D平台做了一个Mars3D美丽乡村应用系统,于2023年3月7日正式发布上线!该系统提供一个PC浏览器端的“样板房”项目模版,包含常用的地图基础功能,可基于该平台开发新项目,更换数据即可快速形…

C++继承派生以及虚基类的内存分布

C中类有3种权限&#xff1a;public、protected、private。&#xff08;本文为《直击招聘》的笔记总结&#xff09;。如果没有指明默认为private&#xff0c;定义class A如下class A {int x; public:void displaya() {cout << "A::x:" << &x <<…

理解进程、通过调用 fork 函数创建进程

文章目录1.理解进程1.1 CPU核的个数与进程数1.2 进程 ID2.通过调用 fork 函数创建进程2.1 fork.c1.理解进程 进程&#xff08;Process&#xff09;&#xff0c;其定义如下&#xff1a;“占用内存空间的正在运行的程序”。 假如各位从网上下载了 LBreakout 游戏并安装到硬盘。…

CS项目实训-Java 银行ATM机

摘 要 本次课程设计主要目的是培养我们面向对象软件开发的思维&#xff0c;初步了解软件开发的一般流程。提高编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是开发一个应用程序&#xff0c;我们小组设计的ATM柜员机&#xff0c;它主要是由各个indows窗…

05 | 如何安全、快速地接入OAuth 2.0?

05 | 如何安全、快速地接入OAuth 2.0&#xff1f; 构建第三方软件应用 第一点&#xff0c;注册信息 小兔软件的研发人员提前登录到京东商家开放平台进行手动注册&#xff0c;以便后续使用这些注册的相关信息来请求访问令牌。兔软件需要先拥有自己的 app_id 和 app_serect 等信…

联想笔记本电脑开机后一直转圈无法启动怎么办?

联想笔记本电脑开机后一直转圈无法启动怎么办&#xff1f;在正常开启电脑的过程中&#xff0c;系统进入到加载页面&#xff0c;但是却一直无法正常的启动。进行系统的重新启动依然是无法正常的使用。遇到这个情况需要进行系统的重置。接下来我们来看看详细的解决方法分享吧。 准…

实现用户操作日志记录

Java记录操作日志 java自带的日志框架是java.util.logging&#xff08;JUL&#xff09;&#xff0c;从JDK1.4&#xff08;2002&#xff09;开始捆绑在JDK中。可以使用JUL来记录操作日志。以下是使用JUL记录事务的示例&#xff1a; // java.util.logging java.util.logging.Lo…

网分线缆测试和dc-block

今天的好苹果和坏苹果 好苹果&#xff1a;是校准件和网分都是好的&#xff0c;又给了我一次复盘的机会 网分测试线缆&#xff1a; 1.网分直接复位&#xff0c;如果网分复位是校准状态&#xff0c;且解的是精密转接头&#xff0c;BNC的&#xff0c;可以不校准&#xff0c;结果差…

【高中数学教资】教案设计通用模板

前言 本文针对的是高中数学教师资格证笔试中最后的大题——教案设计&#xff08;含设计意图&#xff0c;文末有2022下半年高中数学教资教案设计大题&#xff09;。并附上高中数学404教资考点大纲&#xff0c;还有在学习中发现的一些可以免费学习网站推荐。 一、高中数学404考…

List系列集合

一. List集合特点、特有API List的实现类的底层原理 ArrayList底层是基于数组实现的&#xff1a;根据索引定位元素快&#xff0c;增删相对慢。LinkedList底层基于双链表实现的&#xff1a;查询元素慢&#xff0c;增删首尾元素是非常快的。public class ListDemo01 {public sta…

SerDes---CDR技术

1、为什么需要CDR 时钟数据恢复主要完成两个工作&#xff0c;一个是时钟恢复&#xff0c;一个是数据重定时&#xff0c;也就是数据的恢复。时钟恢复主要是从接收到的 NRZ&#xff08;非归零码&#xff09;码中将嵌入在数据中的时钟信息提取出来。 2、CDR种类 PLL-Based CDROve…

【信号与系统笔记】第一章 绪论

1.1信号传输系统 信息传输的任务 将带有信息的信号&#xff0c;通过某种系统由发送者传送给接收者。 通信系统的组成 转换器&#xff1a;把消息转换为电信号或者把电信号还原成消息信道&#xff1a;信号传输的通道&#xff0c;广义上来说。发射机和接收机也可以是信道的一部分…

【RabbitMQ】Producer之publisher confirm、transaction - 基于AMQP 0-9-1(二)

上篇文章主要介绍Producer的mandatory参数&#xff0c;备份队列和TTL的内容&#xff0c;这篇文章讲继续介绍Producer端的开发&#xff0c;主要包括发布方确认和事务机制。 发布方确认 消息持久化机制可以保证应服务器出现异常导致消息丢失的问题&#xff0c;但是Producer将消…

线程池ThreadPoolExecutor,从0到0.6

ThreadPoolExecutor是JDK提供的在java.util.concurrent包中的一个用于创建线程池的工具类。 一、ThreadPoolExecutor的7个参数 corePoolSize&#xff1a;核心线程数&#xff0c;线程池中保留的最小的线程数量&#xff0c;即使它们是空闲的也不会被销毁&#xff0c;除非allowCor…

Modbus转profinet网关连接1200PLC在博图组态与驱动器通讯程序案例

本案例给大家介绍由兴达易控modbus转profinet网关连接1200PLC在博图软件无需编程&#xff0c;实现1200Profinet转modbus与驱动器通讯的程序案例 硬件连接&#xff1a;1200PLC一台&#xff1b;英威腾DA180系列驱动器一台&#xff1b;兴达易控modbus转profinet网关一台 下面就是…