【Golang 基础】Go 语言的变量与常量

news/2023/12/1 8:36:20

Go 语言的变量与常量

变量声明,初始化与赋值 (示例代码)

  • 变量的声明格式:var <变量名称> [变量类型]
  • 变量的赋值格式:<变量名称> = <值,表达式,函数等>
  • 声明和赋值同时进行:var <变量名称> [变量类型] = <值,表达式,函数等>
  • 分组声明的格式
package basic

import "fmt"

func DeclaratGroupVariable(){
    // 分组声明变量
    var (
        name string
        age int = 18
    )

    name = "hvkcoder"

    fmt.Printf("Hello!My name'is %d. I'm %d years old", name, age)
}
  • 简写声明格式:<变量名称> := <值,表达式,函数等>,只能在局部变量声明时使用,并且必须赋值;
  • 声明多个变量,需要以 , 隔开;
package basic

import "fmt"

func DeclaratMultiVariable(){
    // 声明多个变量
    var a , b, c int
    // 为多个变量赋值
    a, b, c = 1 ,2, 3
    fmt.Printf("a = %d , b = %d , c = %d", a, b, c)

    // 声明多个变量并赋值
    var e, f, g int = 4, 5, 6
    fmt.Printf("e = %d , f = %d , g = %d", e, f, g)

    // 简写声明
    h, i, j := 7, 8, 9
    fmt.Printf("h = %d , i = %d , j = %d", h, i, j)
}

声明全局变量时,不能使用简写声明,且必须使用 var 关键字。变量名是 下划线(_) 表示忽略。

常量定义的形式,类型范围(示例代码)

  • 常量定义从形式上可以分为 显式 和 隐式;

    • 显式:const <常量名称> [type] = value
    • 隐式:const <常量名称> = value
  • 一般情况下常量名称需大写,若该常量为私有常量,只需在常量名前加 下滑线(_),如:const _PI = 3.14
  • 常量可以使用内置表达式,如:len()unsafe.SizeOf() 等;
package basic

import "unsafe"


func DeclaratExpression(){
    const (
        _NAME string = "hvkcoder"
        _NAME_LENGTH int = len(_NAME)
        _NAME_SIZE  = unsafe.Sizeof(_NAME)
    )
}
  • 多组常量声明时,常量默认取上一个常量的值;
package basic

import "fmt"

func DeclaratGroupConstant(){
    const (
        _NAME string = "hvkcoder"
        _FIRST_NAME
    )

    fmt.Println(_NAME)
    fmt.Println(_FIRST_NAME)
}

常量类型范围目前只支持 布尔型、数字型和字符串类型

特殊常量 iota

  • iota 只能在常量的表达式中使用,在 const 关键字出现时, iota将被重置为 0;
  • const 中每新增一行常量声明,将使 iota 计数一次;
  • iota 常见用法:

    • 跳值使用法

      package basic
      
      import "fmt"
      
      func JumpValueByIota(){
          const (
              a = 3.14
              b
              c = iota  // 2
              d         // 3
          )
          fmt.Println(a,b,c,d)
      }
    • 插值使用法

      package basic
          
      import "fmt"    
      
      func InsertValueByIota(){
          const (
              a = iota   // 0
              b = 3.14
              c = iota   // 2
              d          // 3
          )
          fmt.Println(a,b,c,d)
      }
    • 表达式隐式使用法

      package basic
      
      import "fmt"
      
      func ExpressionByIota(){
          const (
              B = 1 << (10 * iota)  // 1
              KB                    // 1024
              MB                    // 1048576
              GB                    // 1073741824
              TB                    // 1099511627776
              PB                    // 1125899906842624
          )
      
          fmt.Println(B,KB,MB,GB,TB,PB)
      }
    • 单行使用法

      package basic
      
      import "fmt"
      
      func SingleLineByIota(){
          const (
              a , b = iota + 1, iota + 2
              c, d = iota + 3, iota + 4
      
              // a => 0 + 1
              // b => 0 + 2
              // c => 1 + 3
              // d => 1 + 4
          )
          fmt.Println(a,b,c,d)
      }

变量的类型转换

  • Go 语言中不存在隐式转换,类型转换必须是显式的;
  • 类型转换只能发生在两种兼容类型之间;
  • 类型转换的格式:var <变量名称> [:]= <目标类型>(<需要转换的变量>);

http://www.niftyadmin.cn/n/2923958.html

相关文章

php 测试数据整数,如何用php求整数的各位数之和

PHP求位数之和&#xff0c;也就是将一个整数的每个位数上的值单独作为一个数字&#xff0c;然后进行求和&#xff0c;那么我们可以通过循环相加赋值的思路来实现。下面我们结合具体的代码示例&#xff0c;给大家介绍PHP求位数之和的方法。代码示例如下&#xff1a;<?php fu…

1039. Course List for Student

这一题关键是对姓名处理 将其进行整数值映射。就因为这个点没把握&#xff0c;导致最后一个case超时。然后重新写了程序才通过 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define max(a,b) …

Stuts2与SpringMVC

Struts2&#xff1a;一个基于MVC设计模式的Web应用框架&#xff0c;本质上相当于一个servlet。以WebWork为核心&#xff0c;采用拦截器的机制处理用户的请求&#xff08;Filter&#xff09;。 轻量级的MVC框架。低侵入性&#xff0c;与业务代码的耦合度很低。 采用Filter实现 实…

RxJava【过滤】操作符 filter distinct throttle take skip first MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comRxJava【过滤】操作符 filter distinct throttle take skip first MD demo地址 参考 目录 目录常用的过滤操作符filter ofTypedistinct distinctUntilCh…

1037. Magic Coupon

这一题关键是把正负数分开存储&#xff0c;不然可能出现超时的情况 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define max(a,b) a>b?a:b #define min(a,b) a<b?a:b using namespac…

如何在php中添加音乐播放器,window_Win10自带Groove音乐播放器怎么使用?,《Groove音乐》是微软在Win10系 - phpStudy...

Win10自带Groove音乐播放器怎么使用?《Groove音乐》是微软在Win10系统上推出的一款最新的音乐播放器&#xff0c;从而替代了之前的Xbox Music。而今天《Groove音乐》应用迎来了最新的一次更新&#xff0c;主要是针对Windows10桌面版用户的更新。而小编感觉界面很清爽使用也比较…

从源码解析vue的响应式原理-响应式的整体流程

前言 vue官方对响应式原理的解释&#xff1a;深入响应式原理 上一节讲了VUE中依赖收集和依赖触发的原理&#xff0c;然鹅对响应式的整体流程我们还是有很多疑问&#xff1a; VUE是何时进行依赖收集的&#xff1f;依赖触发了以后又是怎么进行页面响应式变化的&#xff1f;watche…

PHP验证码生成实训报告,php验证码生成器代码示例

验证码生成器是一款操作简单&#xff0c;使用方便&#xff0c;功能实用的验证码生成工具&#xff0c;用户可以使用该工具轻松生成验证码。验证码生成器 特色介绍&#xff1a;1、验证码长度&#xff1a;生成验证码的字符个数&#xff0c;默认为4&#xff1b;2、背景点密度&#…

1040. Longest Symmetric String

求出最长的回文串 原来以为这样做会超时 没想到竟然AC了 从第一个位置开始 求以第i位开头的子串并将其反转&#xff0c;看其是否为回文串 原来要char数组发现很繁琐&#xff0c;就采用c的string发现很方便&#xff0c;其中string的substr函数 参数为i&#xff0c;j 求出的子串…

windows资源管理器添加右键打开

2019独角兽企业重金招聘Python工程师标准>>> 见下图 转载于:https://my.oschina.net/ankexun/blog/2209494

1043. Is It a Binary Search Tree

这一题原来想判断建树再输出 发现挺麻烦的 就判断后直接在原基础上直接排序&#xff0c;可能有bug 结果发现代码写的很长&#xff0c;可能是将镜像BST与BST分开来的关系 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm>…

php 上传图片 进度,php+uploadprogress实现上传进度功能

文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现.虽然说, 它们能很好的解决现在的问题, 但是也有很明显的不足:1. 他们都需要额外安装(我们并没有打算把APC加入PHP5.4)2…

Python爬虫学习代码

【1】用一个简单的程序来显示Python的数字类型。 code&#xff1a; 1 class ShowNumType(object):2 def __init__(self):3 self.showInt()4 self.showLong()5 self.showFloat()6 self.showComplex()7 8 def showInt(self):9 p…

1048. Find Coins

二分查找 先进行递增排序 然后找到的第一个即为最小 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<iterator> #define max(a,b) a>b?a:b #define min(a,b) a<b?a:b usi…

php 删除数组重复的值,php怎么去除数组重复的值

php去除数组重复值的方法&#xff1a;首先创建一个PHP示例文件&#xff1b;然后定义一组有重复值的数组&#xff1b;接着使用“array_unique(array)”函数移除数组中重复的值&#xff1b;最后输出删除结果即可。推荐&#xff1a;《PHP视频教程》array_unique() 函数移除数组中的…

php如何规定时间删除,如何使用修剪函数从NOW()函数中删除时间 - php

让我们有一个像这样的变量&#xff1a;$date_posting 2018-06-12 16:37:13现在我要修剪它&#xff0c;这样就可以删除时间&#xff0c;只保留日期。所以会是这样的&#xff1a;$date_posting 2018-06-12所以我的问题是如何使用修整功能呢&#xff1f;参考方案您需要创建日期对…
最新文章