go语言初记
快速了解 http://go-tour-zh.appspot.com/welcome/1 (可以需要爬墙)
下面记录下了解go的过程,特别记录下与你脑子里原有“观念”不同的地方:
1. 声名 初始化,类型在后面,不一样
var a, b int var a,b =1,2
var c, python, java = true, false, "no!" a,b:=func fname(string,string) //非声明,必须在func使用
短声明变量
在函数中,`:=` 简洁赋值语句在明确类型的地方,可以用于替代 var
定义。
函数外的每个语法块都必须以关键字开始(`var`、`func`、等等),`:=` 结构不能使用在函数外。
2.函数返回多个值
func swap(x, y string) (string, string) { //x, y string 等价 x sring ,y string
return y, x
}
命名返回值
func swap(string, string) (x, y string) { #返回值分别命名为x,y
x= x+12
y= y+1
return
} // 空return实际返回的是x,y
3.对于声明了但没使用的变量,引入但没有使用的包,会引发错误, go可以自动格式化源码
func 函数体的第一个'{'必须在同一行(?试了不在一行格式不行,运行出错)
4.包
每个 Go 程序都是由包组成的。
程序运行的入口是包 `main`。
package main import (
"fmt"
"math/rand"
) func main() {
fmt.Println("My favorite number is", rand.Intn(10)) //先不管rand.Intn干什么的,按照惯例,包名与导入路径的最后一个目录一致。例如,`"math/rand"` 包由package rand
语句开始
}
注意:导出名
在导入了一个包之后,就可以用其导出的名称来调用它。
在 Go 中,首字母大写的名称是被导出的。(算是一种惯例/约定,如python里_function _varname是私有一样)
package main import (
"fmt"
"math"
) func main() {
fmt.Println(math.pi)
}
Foo
和 FOO
都是被导出的名称。名称 foo
是不会被导出的 ,所以math.pi肯定不存在,可能Pi是存在的
5.基本类型
Go 的基本类型有Basic types
bool string int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr byte // uint8 的别名 rune // int32 的别名
// 代表一个Unicode码 float32 float64 complex64 complex128
package main import (
"fmt"
"math/cmplx"
) var ( //这样用很特别
ToBe bool = false
MaxInt uint64 = 1<<64 - 1
z complex128 = cmplx.Sqrt(-5 + 12i)
) func main() {
const f = "%T(%v)\n"
fmt.Printf(f, ToBe, ToBe) //bool(false)
fmt.Printf(f, MaxInt, MaxInt) //uint64(18446744073709551615)
fmt.Printf(f, z, z) //complex128((2+3i)) 不懂
}
6.类型转换 不同类型间转换需要显式进行,即使从int往int64转也得显式 (c是可以隐式转换的,溢出不提示)
7.循环只有for ,没有 while ,通过省略for的首尾式可以做到while一样的事 :for i < 10 {}
go语言初记的更多相关文章
- tomcat&servlet初记
tomcat&servlet初记 1. web相关概念 2. web服务器软件的学习:tomcat 3. servlet入门学习 web相关概念 1,软件架构 1,cs架构:客户端/服务器端 ...
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- InstallShield 脚本语言学习笔记
InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加. 一.基本语法规则 ...
随机推荐
- 【译】2022 年回顾:Web 性能有哪些新变化?
原文地址:https://www.debugbear.com/blog/2022-in-web-performance 若对文中提到的一些性能参数不太熟悉,可以参考我之前的一篇博文<性能参数和优 ...
- 数值计算:前向和反向自动微分(Python实现)
1 自动微分 我们在<数值分析>课程中已经学过许多经典的数值微分方法.许多经典的数值微分算法非常快,因为它们只需要计算差商.然而,他们的主要缺点在于他们是数值的,这意味着有限的算术精度和不 ...
- Linux 环境中使用 LVGL
之前有记录过在 esp32 中使用 LVGL 的笔记,需要的小伙伴可以了解一下,esp-idf 移植 lvgl8.3.3 我之前整理的学习资料:https://www.cnblogs.com/jzcn ...
- Java基础篇——多线程
创建线程的三种方式 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 继承Thread类 public Test extends Thread{ public voi ...
- JS逆向之补环境过瑞数详解
JS逆向之补环境过瑞数详解 "瑞数" 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数 ...
- IDEA 2022.1.3 配置 Tomcat 模板
本地运行 Tomcat 首先,下载得到 Tomcat 压缩包 选择合适的位置解压,路径不要有中文和空格 结构如下所示 目录结构说明: bin 可执行文件目录 conf 配置文件目录 lib 存放lib ...
- pytorch 配置详细过程
torch github 项目多 方便,api好调用 cpu版本 装torch 安装最新版本的就可以. torchvision 要版本对应 算法: torchvision版本号= torch版本号第一 ...
- .Net6 使用 Ocelot + Consul 看这篇就够了
前言 卯兔敲门,新的一年,祝大家前'兔'似锦!希望大家假后还能找到公司的大门 O(∩_∩)O !书接上文,我们使用了 Consul实现了服务注册与发现,对Consul不熟悉的同学可以先看看.这篇文章我 ...
- Dubbo 入门系列之快速部署一个微服务应用
本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用. 背景 Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力.如上图所示,Dubbo 的 ...
- Python修改柱状图边缘柱子与图边界的距离
本文介绍基于Python中matplotlib.pyplot模块,修改柱状图.条形图最两侧的柱子与图像边缘之间距离的方法. 最近,绘制了一个水平的柱状图,但是发现图的上.下边距(不是柱子与柱子 ...