GO语言入门1:基本数据类型

2023-05-16

一、GO语法结构

1.示例代码
package main                                          //包声明,必须出现在源文件第一行,指明文件处于哪个包
 
import "fmt"                                           //引入文件中需要的包文件
 
func main() {                                          //文件执行入口
   /* 这是我的第一个简单的程序 */           //注释格式,同普通C格式
   fmt.Println("Hello, World!")                //主要代码功能区
}
## 标识符
1)当标识符以  大写字母  开头,则可被外部包访问
2)当标识符以  小写字母  开头,则仅可被内部包访问
## 注意事项
1)“{”不能单独放在一行,会出现运行时错误
2)文件名与包名并无直接关系,并非需要一致
3)同一个文件夹下的文件只能有一个包名,否则编译报错
4)代码模块每行可以不写分号,当同行有多句代码时需要用分号间隔
 
2.GO代码的执行
1)go run   文件名       //执行代码
2)go build 文件名      //编译生成二进制文件
 

二、语言基础语法

1.标记:GO程序由多个标记组成,标记是代码中可以拆解的最小的有意义的单位,如:关键字、标识符、常量、字符串、符号等
 如:fmt.Println("Hello, World!")
分解为:fmt   .    Println    (    "Hello, World!"     )
 
2.行分隔符
1)每行只有一个语句的时候可以不写任何分隔符
2)需同行写多句代码时,需用分号间隔
 
3.标识符规范
1)由字母、数字、下划线组成
2)第一个字符必须是字母或下划线
3)关键字不能作为标识符
 
4.字符串
1)字符串:是由双引号括起的一段字符序列
2)转义字符:换行符 \n、回车符 \r、tab键  \t、Unicode字符  \u、反斜杠  \\
3)字符串拼接:使用“+”或“+=”可以完成字符串拼接
4)字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容;更深入地讲,字符串是字节的定长数组。
 
5.变量
(1)单变量声明
1)指定变量类型不赋值,则变量默认为零(没有初始化时系统默认的值)
如:var  name   type
各类型零值:数值类型:0、bool:false、字符串:“”、复杂数据类型:指针/数组/字典等:null
2)不指定变量类型,指定初值,根据初值自行判定数据类型
如:var  name  =  value
3)使用“:=”可以声明新的变量,而不用使用var,但对已有变量赋值时会报错
如正确声明: name1 :=  value   //name1从未被定义
如错误声明:var  name2 = value2;name2 := value3
##注意
:= 操作符只能用于函数体内部,不能用户全局变量的声明与赋值
(2)多变量声明
1)类型相同的多个变量声明
如: var  name1,name2,name3   type; name1,name2,name3=value1,value2,value3
2)类型不同的多个变量声明
如:var(name1  type1;name2  type2……)
(3)值类型和引用类型
1)基本数据类型均属于值类型:int、float、bool、string,直接指向内存在内存中的值
a. 可以通过print直接输出变量值:fmt.Println(i)
b. 可以通过&获得变量地址:fmt.Println(&i)
c. 将一个变量赋给另一个变量时,是对值进行了拷贝赋在了新的内存地址中
6.常量
(1)常量:在程序运行过程中不会被修改的量
如:const  name  [type]  =  value
显式类型定义:const  b  string  ="abc"
隐式类型定义:const  b = "abc"
1)常量枚举定义
const (
    Unknown = 0
    Female = 1
    Male = 2
)
(2)iota:可以变化的特殊常量,系统自定义
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
 
测试代码
package main

import "fmt"

func main(){
	 fmt.Println("Hello, World!");
	 fmt.Println("Hello, World22!")
	 //转义字符相关
	 /*fmt.Print("\n")
	 fmt.Print("\r")
	 fmt.Print("\t")
	 fmt.Print("\u")
     fmt.Print("\\")
     */
     //验证省略var时必须声明全新的变量
     //var vname1, vname2, vname3 = "1", "2", "3" // 和 python 很像,不需要显示声明类型,自动推断
     
     //nvname1, nvname2, nvname3 := "1", "2", "3" // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误

     var i,j int;
     i = 1;
     j = i;
     fmt.Println(i);
     fmt.Println(j)
     fmt.Println(&i)
     fmt.Println(&j)
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GO语言入门1:基本数据类型 的相关文章

  • 【问题解决】Kafka报错 Bootstrap broker x.x.x.x:9092 (id: -1 rack: null) disconnected

    问题复现 近日针对某一客户需求开发了一个需要使用Kafka的功能 xff0c 功能是什么暂且不论 xff0c 在本地虚机的Kafka连接一切正常遂放到测试服务器上验证功能 xff0c 以下是监听topic成功和警告报错 xff1a span
  • Ubuntu14.10登录界面隐藏其他用户登录窗口

    上次装完MySQL后每次开机登录界面都会有一个mysql用户登录框在管理员用户下边 感觉很碍眼 记得上次在安装MySQL时就屏蔽了mysql用户登录 xff0c 可为何还会在登录界面显示 比较纳闷了 在网上找很多方法都没有用 感觉千篇一律
  • Hadoop64位版本安装后遇到的警告处理

    在使用hadoop的过程中 xff0c 会遇到一个警告 xff0c 内容如下 xff1a WARN util NativeCodeLoader Unable to load native hadoop library for your pl
  • 【MFC基础教程】MFC 中常用类,宏,函数介绍

    一 常用类 CRect xff1a 用来表示矩形的类 xff0c 拥有四个成员变量 xff1a top left bottom right 分别表是左上角和右下角的坐 标 可以通过以下的方法构造 xff1a CRect int l int
  • 从cas-overlay-template安装apereo cas 6.1.x并连接CAS客户端

    一 什么是单点登录 简单点说 单点登录的英文名称为Single Sign On xff0c 简写为SSO xff0c 它是一个用户认证的过程 xff0c 允许用户一次性进行认证之后 xff0c 就访问系统中不同的应用 xff1b 而不需要访
  • linux教程:[4]配置Tomcat开机启动

    我们在linux下安装好tomcat之后 xff1b 经常是需要配置到开机启动的 xff1b 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup sh文件启动tomcat了 本次的演示环境是在centos7中完成的
  • 用word2016 写CSDN 博客

    在word2016 中 点击文件 61 gt 共享 61 gt 发布至博客 下面点击 立即注册 在这个里面 选择其他 xff0c xff08 这里我说的是 CSDN 博客 xff09 http write blog csdn net xml
  • 详解cocos2d帧率FPS

    详解cocos2d帧率FPS 最近在使用coco2d js写一个游戏的时候 需要将帧率实时显示出来 于是搜索了一下 获得FPS有下面几个方法 cc director getAnimationInterval cc director getS
  • Eclipse本地运行与远程提交MapReduce程序的步骤详解

    1 下载eclipse插件 此插件只是方便我们在eclipse上查看hdfs集群上的数据而已 1 1 下载对应版本的 hadoop eclipse plugin XXX jar 并将其复制到eclipse下的plugin的目录下 xff0c
  • sagalbot/vue-select 选中元素变动事件(:on-change 踩坑)

    文章目录 场景分析方案 amp amp 遇到的坑源码 场景 需要根据选中元素为依赖获取一个计算属性 array 此时computed不能满足 分析 官方文档的介绍 An optional callback function that is
  • 客户需求VS最终软件交付

    客户起初要求的样子 xff0c 和最终项目交付时的样子 xff0c 非常真实 你永远不知道开发过程中 有哪些或深或浅 xff0c 或近或远的弯弯绕绕在等着你 回复 干货 获取精选干货视频教程 回复 加群 加入疑难问题攻坚交流群 回复 mat
  • mapreduce python编程实例

    mapreduce python编程实例 1 mapreduce使用python WordCount实例 1 1 mapper函数使用 vi mapper py usr bin python coding utf 8 Filename ma
  • Centos7安装KVM虚拟化

    Centos7安装部署KVM 一 配置网桥 1 备份原来的配置文件2 修改配置文件a 修改已连接的网卡配置文件 以ifcfg eno1为例 b 配置网桥配置文件 xff08 以ifcfg br0为例 xff09 c 重启网卡 xff08 建
  • Nanopi M4 基于Opencv 打开USB摄像头

    一 环境选择 首次使用Nanopi M4 ARM板 xff0c 最初加载的是官方给的rk3399 sd friendlydesktop bionic 4 4 arm64 20190523 img xff0c 但我最终放弃使用该系统 xff0
  • “学C语言计划”后续

    从上一篇日记 学C语言计划 到现在已经过去了一个季节了 季节翻页 xff0c 而我菜鸟依旧 xff01 连大自然节奏都跟不上 xff0c 这真是要作死的节奏啊 几天前 xff0c 考完了高数和C语言 xff0c 顺便 玩完 了 后天要考英语
  • 解决KEIL中ARM编译器不能编译的问题

    keil编译器出现问题 xff0c 根据提示意思就是ARM编译器选择不对的问题 Target 39 Printf 39 uses ARM Compiler 39 V5 06 update 6 build 750 39 which is no
  • C++ ZeroMQ 发布订阅模式例子跟注意事项

    发布订阅模式 接收端 xff1a void context void subscriber 第一步 xff1a zmq ctx new 创建context对象 context 61 zmq ctx new 第二步 xff1a 创建socke
  • 目标检测算法——anchor free

    一 anchor free 概述 1 先要知道anchor 是什么 xff08 这需要先了解二阶段如faster rcnn xff0c 一阶检测器如YOLO V2以后或SSD等 xff09 在过去 xff0c 目标检测通常被建模为对候选框的
  • 度量学习(Metric learning)—— 基于分类损失函数(softmax、交叉熵、cosface、arcface)

    概述 首先 xff0c 我们把loss归为两类 xff1a 一类是本篇讲述的基于softmax的 xff0c 一类是基于pair对的 xff08 如对比损失 三元损失等 xff09 基于pair对的 xff0c 参考我的另一篇博客 xff1
  • Oauth2知识总结

    官网 xff1a OAuth Community Site OAuth是一个关于授权 xff08 authorization xff09 的开放网络工业标准 xff0c 允许用户授权第三方应用访问用户存储在其它应用上的信息 xff0c 而不

随机推荐

  • 重构技巧之策略模式优化业务代码

    重构技巧之策略模式优化业务代码 策略模式对业务代码进行重构背景分析 在日常的开发过程中 xff0c 我们肯定会遇到很多if else或者switch case的业务代码 xff0c 作为维护这类代码的开发者来说 xff0c 分支太长 xff
  • 64位Ubuntu使用john破解密码的No password hashes loaded

    最近研究了一下Linux的密码破解 xff0c 因为正好在学习computer security 计算机信息安全 这门课 我在使用 john the ripper 的时候遇到了一个问题 No password hashes loaded 今
  • Java常量池详解之抓狂的面试题

    今天My partner问我一个让他头疼的Java question xff0c 求输出结果 xff1a 64 author DreamSea 2011 11 19 public class IntegerTest public stati
  • PC软件问题定位工具-windbg

    windbg工具使用 windbg是微软的工具 xff0c 可以从百度或微软官网获取 工具支持 xff1a 分析dmp文件 定位CPU 内存 崩溃等异常问题 代替VS调试C 43 43 程序 这里主要整理了收集或分析dmp文件的相关命令 x
  • Ubuntu18.04使用RealVNC进行远程桌面连接

    可以直接查看最新的 xff1a RealVNC Server Ubuntu 20 04 无显示器连接 虚拟显示器 捉不住的鼬鼠的足迹 CSDN博客 使用Linux服务器 xff0c 在一般情况下是不太用桌面环境的 不过现在我想着开发用Lin
  • CMakeLists.txt 详解

    目录 CMakeLists txt用例详解 xff08 WDS中的用例 xff09 CMakeLists txt作用 生成对象库OBJECT实例 xff08 wds libwds common CMakeLists txt xff09 生成
  • ubuntu16.10安装numpy, scipy, matplotlib

    在Python3 x中安装numpy sudo apt get span class hljs keyword install span python3 pip pip3 span class hljs keyword install sp
  • Linux进程状态分析

    最近在看APUE过程中 xff0c 遇到了一个有关于进程的 僵死进程 的状态 既然遇到了进程状态的问题 xff0c 索性就查了查 Linux内核设计与实现 xff0c 里面给出了5种状态 xff0c 分别是 TASK RUNNING TAS
  • IDEA自动生成Javadoc代码注释

    在日常写代码时往往不会注重注释的格式 规范等问题 xff0c 可能注释都不会写 xff0c 但是一旦代码完成后要交付他人 xff0c 就需要考虑注释的问题了 xff0c 因为重要函数 方法的注释往往对整个代码的阅读起着十分重要的作用 xff
  • VNC连接远程服务器

    记录探索之路 由于跑深度学习算法 xff0c 需要连接服务器 xff0c 以前都是利用XShell连接 xff0c 也比较好用 xff0c 但是没有界面 VNC可以展示界面 xff0c 更加清晰 xff0c 以下是探索的方法 1 下载软件
  • Linux文件权限管理命令学习

    你必须非常努力 xff0c 才能看起来毫不费力 xff01 微信搜索公众号 漫漫Coding路 xff0c 一起From Zero To Hero 前言 本篇文章主要讨论Linux中的文件权限管理命令 xff0c 包括更改文件权限 文件所有
  • App移动端测试-Fiddler工作场景总结

    文章目录 一 测试思路1 1App测试内容1 2APP功能测试思路 二 Fiddler测试环境配置2 1Fiddler PC配置2 2模拟器端配置2 3模拟器端代理设置 三 Fiddler测试工作应用场景3 1 Fiddler抓包辅助定位B
  • 当Linux配置zh_CN.UTF-8 ,中文还是显示乱码解决办法

    文章目录 一 出现问题的可能原因1 服务器没有安装zh CN UTF 8 字符集2 远程登录软件字符设置 这篇博客主要说明出现问题的原因和解决思路 一 出现问题的可能原因 1 服务器没有安装zh CN UTF 8 字符集 安装对应的软件包就
  • tar (child): lbzip2: Cannot exec: No such file or directory 解决方法

    tar child lbzip2 Cannot exec No such file or directory 解决方法 今天用tar命令解压文件的时候出错了 xff0c 信息如下 xff1a tar child lbzip2 Cannot
  • openstack newton Linuxbridge改ovs并配置dvr

    这几天一直在搞dvr xff0c 现在终于搞好了 网上的资料比较杂乱 xff0c 期间也一直在各种尝试 xff0c 步骤也很繁琐而且混乱 xff0c 坑比较多 xff0c 现在整理一下 官方安装文档从前几个版本开始在 配置网络的时候就由ov
  • Android jcenter bad gateway 502(Unable to load Maven meta-data from https://jcenter.bintray.com)

    今天在Android studio运行项目的时候报了如下错误 xff0c 项目都编译不过了 xff0c 顿时慌 这里附上gradle额下载地址 gradle Error Could not resolve all files for con
  • 优化Webview加载速度 TBS(腾讯浏览服务X5内核) | VasSonic(提升H5首屏加载速度)

    浏览增强 传统系统内核 Webview 存在适配成本高 不安全 不稳定 耗流量 速度慢 视频播放差 文件能力差等问题 xff0c 这是移动应用开发商在进行Hybrid App开发时普遍面临的难题 腾讯浏览服务基于腾讯X5内核解决方案 xff
  • 稀疏矩阵求解工具AMGX

    之前稀疏矩阵求解 xff0c 使用mkl 43 Eigen xff0c 1500 1500 2规模的稀疏矩阵求解时间为9秒 xff0c 后来使用AMGX求解 xff0c 求解时间提升至0 02秒 AMGX主要使用了mpi和cuda来进行加速
  • k8s中pod sandbox创建失败"failed to start sandbox container"

    背景 今天在k8s更新服务时 发现pod启动失败 报错failed to start sandbox container 如下所示 Events Type Reason Age From Message
  • GO语言入门1:基本数据类型

    一 GO语法结构 1 示例代码 package main 包声明 xff0c 必须出现在源文件第一行 xff0c 指明文件处于哪个包 import 34 fmt 34 引入文件中需要的包文件 func main 文件执行入口 这是我的第一个