Go 变量和常量

最近在看Go相关的书籍,看到go相关的语法,非常的简洁和亮眼,就准备学习一下相关的资料,将自己看到的书籍记录一下笔记,补充一下工作之余的相关知识。先开始Go的语法

一:变量

  1.0:变量申明

  var a int //定义一个整形变量

  var b string //定义一个字符串

  var c [10]int //定义一个整形的数组

  var d []int //定义一个整形的数组切片

  var e *int //定义一个整形的指针

  var f map[string]interface{} //定义一个字典集合

  var func( value int) int //定义一个函数

  var (

      v1 int

      v2 string

    ) //定义多个变量 

 1.1:变量的初始化

  var v1 int= 10 // 正确的使用方式1

  var v2 = 10 // 正确的使用方式2,编译器可以自动推导出v2的类型

  v3 := 10 // 正确的使用方式3,编译器可以自动推导出v3的类型  =>var v3 int  v3=10(v3:=10错误 )

 1.2:变量的赋值

  除了上面的变量初始化赋值外,Go有一个很特色的赋值(多重赋值)

  i,j:=j,i 等价于下面

    var i int =10

    var j int =11

    var temp int  

    temp=i

    i=j

    j=temp

  这个赋值非常有特色,特别是比较大小的时候,简化了代码工作量,并且看着很舒服

 1.3:匿名变量

  在多返回值的时候,当我们只想获取指定的返回值,我们在这种情况可以使用"_"来代表一个变量,如下所示

  func GetName() (firstName, lastName, nickName string) { 

    return"May", "Chan", "Chibi Maruko"
  }

  var name string

 

  _,_,_,name=GetName()

二:常量

  2.0:字面上的常量

  指程序中硬编码的常量  如-12 ,1 。。等等

  2.1:常量的定义

  const Pi float64= 3.14159265358979323846

  const zero = 0.0 // 无类型浮点常量

  const (
    size int64= 1024
    eof = -1 // 无类型整型常量
  )

  const u, v float32= 0, 3 // u = 0.0, v = 3.0,常量的多重赋值

  const a, b, c = 3, 4, "foo"

  注意:常量的定义是在编译期的行为,所以右边的赋值不能是运行期间得到的值  例如:const v2 int=os.GetEnv("Home")

  2.2:预定义常量

  Go中预定义的常量 有三种 true ,false 和itoa 其中itoa比较特殊,如下

  const (

    i=itoa =>0

    j=itoa =>1

    k=itoa =>2  

  )

  在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增1

  2.3:枚举

  学过C#的人都知道 枚举是一系列相关的变量,除了关键字区别外,内容都差不多,如下例子

  const(
    Sunday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
  )

  今天先到这里了,明天继续学习类型,坚持。。


  

 

 

 

转载于:https://www.cnblogs.com/dark-liu/p/3665147.html

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

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

相关文章

Jmeter使用入门

Jmeter简介Jmeter的基本概念百度百科:Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Jav…

阿里云 Windows Server 2022 安装 Docker

阿里云Windows Server 2022 安装 Docker 文章目录 情景尝试正解 安装Docker管理工具安装Docker重启系统配置Docker系统路径配置Docker引擎(也许不用)启动Docker服务 情景 情景:最近一直在搞微服务,团队的服务器是阿里云的 Windows Server 2022&…

LeetCode 1679. K 和数对的最大数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 和一个整数 k 。 每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1: 输入:nums [1,2,3,4], k 5 输…

android第二十步摄像

MediaRecorder摄像类 recorder new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC);音频取自麦克 recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);视频取自摄像机 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);/…

正则表达式之 贪婪与非贪婪模式详解

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。 属于贪婪…

LeetCode 1680. 连接连续二进制数字(位运算)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n ,请你将 1 到 n 的二进制表示连接起来,并返回连接结果对应的 十进制 数字对 10^9 7 取余的结果。 示例 1: 输入:n 1 输出:1 解释:二进制的 "1"…

网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23866427 今天又遇到一个网页数据抓取的任务,给大家分享下。 说道网页信息抓取,相信Jsoup基本是首选的工具,完全的类JQuery操作,让人感觉很舒服。但…

jmeter进行http压力测试(图文小教程)

下载地址:http://jmeter.apache.org/download_jmeter.cgiJMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat1、添加线程组: 测试计划 -> 添加 -> Threads(User) -> 线程组,添加后…

LeetCode 1681. 最小不兼容性(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中,使得同一个子集里面没有两个相同的元素。 一个子集的 不兼容性 是该子集里面最大值和最小值的差。 请你返回将数组分成 k 个子集后&…

css bug 集2

问题浏览器DEMO解决方法Hacking Rules:property:all-ie\9; property:gte-ie8\0;*property:lte-ie7; property:ie7; _property:ie6;1input[button | submit] 不能用 margin:0 auto; 居中IE8bug | fixed为input添加width2body{overflow:hidden;}没有去掉滚动条IE6/7bug | fixed设…

python读取Excel实例详细教程

1.操作步骤:(1)安装python官方Excel库-->xlrd(2)获取Excel文件位置并读取(3)读取sheet(4)读取指定rows和cols内容2.示例代码: # -*- coding: utf-8 -*-imp…

使用CNN进行情感分类

文章目录1. 读取数据2. 数据集拆分3. 文本向量化4. 建立CNN模型5. 训练、测试参考 基于深度学习的自然语言处理 1. 读取数据 数据文件: import numpy as np import pandas as pddata pd.read_csv("yelp_labelled.txt", sep\t, names[sentence, label…

人生苦短,我用Python(Python快速教程 - 基础篇)

Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用。 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明…

A5营销:传统企业站优化正文内容在SEO方面的三大注意事项

关于网站的正文内容,相信站长们都应该比较清楚正文内容的作用以及给网站所带来的价值,优质的网站正文内容可以给用户带来阅读体验和帮助、可以给网站带来庞大的流量、可以让蜘蛛一次吃个饱等等。当然,优质的正文内容不光是内容的质量正重要&a…

Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell

【环境配置的原因】在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK。如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告“找不到文件”类似的错误。那么,什么是环境变量呢&#xf…

LeetCode 1000. 合并石头的最低成本(区间DP)

文章目录1. 题目2. 解题1. 题目 有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可…

Android 自定义View (一)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫&#x…

Python导入全局、局部模块以及如何让避免循环导入

许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中,我们将探讨以下话题: 常规导入(regular imports)使用from语句导入相对导入(relative imports)可选导入(option…

LeetCode 995. K 连续位的最小翻转次数(差分思想)

文章目录1. 题目2. 解题1. 题目 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。 返回所需的 K 位翻转的次数,以便…

如何自学人工智能?

不少同学跃跃欲试,想投入 AI 的怀抱,但苦于不知如何下手。其中,人工智能的核心就是机器学习(Machine Learning),它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 我们今天就来分…