前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >左手Python,右手Go

左手Python,右手Go

作者头像
公众号guangcity
发布2019-09-20 12:14:02
7760
发布2019-09-20 12:14:02
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

左手Python,右手Go


今日知图复制粘贴

代码语言:javascript
复制
y copy 复制 跟可视命令,移动命令一起连用
yy 复制一行
nyy 复制n行
p 粘贴
np 粘贴n次

0.说在前面1.HelloWorld程序2.基本语法3.条件判断4.作者的话


0.说在前面

最近Go很火!!!所以我也来学习了,一起来嗨GO!

1.HelloWorld程序

代码语言:javascript
复制
package main
import "fmt"
func main(){
    fmt.Println("Hello,World!")
    //单行注释
    /*
    我是多行注释
    */
}

注意一点,main()后面的大括号不能放在下面,会有语法错误哦~

2.基本语法

注释

单行注释

代码语言:javascript
复制
//单行注释

多行注释

代码语言:javascript
复制
/*我是多行注释*/

数据类型

  • 布尔型
  • 数字类型
  • 字符串类型
  • 派生类型

区别:Go的字符串是单个字节连接!

数字类型有整型int,浮点型float32,float64等!

派生类型主要包含:

  • 指针类型(Pointer)
  • 数组类型
  • 结构化类型(struct)
  • Channel 类型
  • 函数类型
  • 切片类型
  • 接口类型(interface)
  • Map 类型

变量

形式

声明变量的一般形式是使用 var 关键字:

代码语言:javascript
复制
var 变量名 type

变量名也跟其他语言一样,起始不能为数字,由下划线,数组,字母组成!

单变量声明

例如:

代码语言:javascript
复制
package main
var name = "光城"
var a string
var b bool
func main(){
    a = "learn"
    println(name,a,b)
}

输出:

代码语言:javascript
复制
光城 learn false

可以发现,b没有初始化,那么默认值为false

多变量声明

这里分为显式与隐式定义!

代码语言:javascript
复制
//类型相同,但不是全局变量!
var a1,a2,a3 string
//自动判断类型,于python一致,不需要显式声明类型
var v1,v2,v3 = "1","2","3"
func main(){
    println("显式声明类型并未初始化打印")
    a1="a1"
    a2="a2"
    a3="a3"
    println(a1,a2,a3)
    println("未显式声明类型并初始化打印")
    println(v1,v2,v3)
}

输出:

代码语言:javascript
复制
显式声明类型并未初始化打印
a1 a2 a3
未显式声明类型并初始化打印
1 2 3

main函数内部声明并使用局部变量,必须在后面使用,否则报错!!!

代码语言:javascript
复制
func main(){
    var a string = "abc"
    println(a)
}

变量的另一种定义形式:

代码语言:javascript
复制
var (
    x1 int = 5
    x2 string = "hi"
    x3 bool = true
)
func main(){
    println("全局变量打印")
    println(x1,x2,x3)
}

输出:

代码语言:javascript
复制
全局变量打印
5 hi true

综上得出:定义在函数内部的是局部变量,局部变量必须进行使用,而函数外部未全局变量,可以直接声明,后面不使用!!!

除了上述语法外,还有一个特别神奇的语法糖,可以直接不用var来定义变量!!!

代码语言:javascript
复制
func main(){
    yufatang := "我是语法糖"
    println(yufatang)
}

注意点::=连用中间每空格,:=要确保左值没有被定义过!

常量

代码语言:javascript
复制
//显式定义
const name string = "光城"
//隐式定义
const PI  =  3.14
//多个相同类型声明
const c1,c2  = 1,2

枚举

每个变量之间换行!!!

代码语言:javascript
复制
const (
   Unknow=0
   Femal=1
   Male=2
)
println(Unknow,Femal,Male)

iota

iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次。

例1:

代码语言:javascript
复制
const (
   at = iota //0
   b        //1
   c        //2
   d = "ha" //独立值,iota += 1
   e        //"ha"   iota += 1
   f = 100  //iota +=1
   g        //100  iota +=1
   h = iota //7,恢复计数
   i        //8
)
println(at, b, c, d, e, f, g, h, i)

输出:

代码语言:javascript
复制
0 1 2 ha ha 100 100 7 8

例2:

代码语言:javascript
复制
const (
   i1=1<<iota
   j=3<<iota
   k
   l
)
println(i1,j,k,l)

输出:

分别式向左移动0,1,2,3位,每移动1位乘以2。

代码语言:javascript
复制
1 6 12 24

运算符

算术运算符

这里介绍区别,在go中由自增,只不过与c或c++有区别,看下面!!!

代码语言:javascript
复制
atest := 1
atest++ //正确
++atest //错误,同理--一样
b:=atest++ //错误,单独作为语句

关系运算符

同c/c++,这里略!

逻辑运算符

&&||!,分别式与,或,非

位运算

&|^<<>>

赋值运算符

<<=>>=&=|=^=,+=,等。。。

其他运算符

&*与c/c++一致!

代码语言:javascript
复制
atest := 1
var ptr* int
ptr = &atest
println(ptr)

3.条件判断

if else语句

授权例子!!!

代码语言:javascript
复制
var pa int
var pb int
println("请输入密码:   \n")
fmt.Scan(&pa)
if pa == 123456 {
   println("用于获取授权!")
   println("请输入进门授权码:  \n")
   fmt.Scan(&pb)
   if pb == 111 {
      println("成功!!!")
   } else {
      println("失败!!!")
   }
} else {
   println("非法入侵!!!")
}

switch语句

代码语言:javascript
复制
println("请输入条件字符串:\n")
var ch string
fmt.Scan(&ch)
switch ch {
case "a":
   println("输入的是a!\n")
case "b":
   println("输入的是b!\n")
case "c":
   println("输入的是c!\n")
default:
   println("输入无效!\n")
}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 左手Python,右手Go
    • 0.说在前面
      • 1.HelloWorld程序
        • 2.基本语法
          • 3.条件判断
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档