一份前端工程师快速接入GO语言语法指南(上)

一份前端工程师快速接入GO语言语法直男指南(上)

如果你对行业风向比较关注的话, 我相信你对go一定是不陌生的, 作为近几年频频露脸大放异彩的21世纪C语言, go华服加身(熹妃回宫~), 当然, 作为一名前端, 不论是为了让自己的职业道路更加宽广(搞更多的钱), 还是为了要让自己的技术栈更加丰富, KOA node这种级别的语言已经不足以让我们停下脚步, 如果想要成为全栈或者架构, 一门或多门服务端语言的学习与掌握不可避免, 而go这两年又这么红, 所以笔者这里提供一本葵花宝典(不正经前端学习go基本语法指南), 希望对前端快速接入go的语法有一定帮助

Go语言总览

What is go?

i am 够浪(golang), 是Google开发的静态强类型, 编译型语言

可能有的同学就想问了, 学服务端Java, C不就够了吗? 为啥要学习go?

在这里插入图片描述

  1. go有着接近于C语言的执行效率, 但又有着Python一般简洁的语法
  • C语言虽然执行效率高, 但开发效率低(因为对开发者要求较高)
  • Python语法简洁但是因为是动态语言, 无编译过程, 容易出现很多低级错误
  • 因为笔者也不是很了解C和Python就不多叨叨了, 狗头保命, 总之Go就是集众多优点于一身的新生代语言
  1. go语言家族显赫师出名门, 背靠google这颗大树, 不仅是现在, 未来的前景都是不可限量
Go可以应用在哪些领域呢?
  1. 服务端编程, 处理日志, 数据打包, 虚拟机处理, 文件系统等
  2. 分布式系统, 数据库代理器, 中间件等
  3. 网络编程, 包括web应用, api应用, 下载应用
  4. 数据库操作
  5. 云平台开发, 目前国外很多云平台采用go开发, 例如docker
国内外大量采用go语言的公司

国内: 阿里云, 百度, 腾讯, 小米, 滴滴, 美团, 七牛等
国外: google, docker, kubernetes, Apple等

(门)指南现在开始

由于是前端入坑指南, 这里会用go来对比前端语法js来进行描述

1. 基本代码语法

差异与js的是, go的语法类似于python, 四大皆空能省则省, 在代码中是不需要添加分号作为结束符的(go自己好像会偷偷补上), 同时在很多流程控制里都是不需要括号的, 这里你随着我写, 随着看就知道这奔放的语法了

2. 变量声明

这前端同学可有福了, 在变量声明这块, 你会感到回家的感觉, 一起来看看吧

go语言在声明上提供两个关键字

  1. var: 声明变量
  2. const: 声明常量

我们来说说go与js在声明这块的一些差异

  1. go语言作为强类型的静态语言, 不存在什么预编译, 这回事, 也就是说, 你但凡敢在声明之前就用了变量就打断你的狗腿给你报错

  2. 由于是强类型语言, 声明变量必须要指定语法类型

var str string = "helloWorld" // 代表声明一个字符串
var num int = 123 // 代表声明一个整型
const PI float64 = 3.14 // 代表声明一个浮点数

// 如果你对上面的数据类型不是很熟悉, 没关系, 反正我后面也会说
  1. go语言跟ts(typeScript)一样, 支持类型推导(根据变量的值给变量自动推导类型)

    var str = "helloWorld" // 系统会自动帮你补全为string类型, 因此不需要你进行类型标注
    

    注意: 如果你打算使用类型推导, 那么你在变量声明的时候必须赋值, 你不赋值就必须自己手动指定变量类型(又想不赋值又想推导你做梦)

  2. 连续变量声明和赋值跟js有区别, go的声明方式如下

    var name, age, sex = "adam", 18, "male" // 全部会进行类型推导
    
    // 上面的声明就是必须赋值, 如果你不想赋值, 参考下面的声明方式
    // 不赋值就必须要声明类型!! 重要的话再说一次
    var (
        word string 
        number int
        music string
    )
    
  3. go语言独有的简短声明变量方式, 就是类似于js的语法糖

    num := 123 
    // 一个冒号加一个等号代表的就是简短声明, 是一种语法糖, 上面的写法系统会在内部自动转换成 var num int = 123
    
  4. 作为强类型语言, 一旦给变量指定类型(或者被系统推导了类型), 从此就不可以给该变量赋其他类型的值, 你可以理解跟ts的类型检查有的一比

    var num int = 10
    num = "helloWorld" // error: cannot use "helloWorld" (type untyped string) as type int in assignmentgo
    
  5. 在常量声明中, go语言独有一个iota关键字, 只允许在const声明的常量中存在, 他有如下规则

    • 同一作用域下出现一次const关键字, iota的值就会自增1
    • 同一作用域中第一次出现const的地方, iota自动赋予初值为0
    // 这是全局作用域
    const num = iota; 
    const secNum = iota; 
    
    func main() {
         
        // %v的意思就是直接输出该变量值的意思
        fmt.Printf("%T, %v", num, num) // 输出: int 0
        fmt.Printf("%v", num) // 输出: 1
    
        // 这是函数作用域
        
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go言是一种静态类型、编译型的编程语言,它支持面向对象、过程式和函数式编程范式。以下是Go语言的一些基本语法: 1. 变量声明和赋值 Go语言中的变量声明和赋值使用关键字var和:=符号。例如: ``` var a int a = 10 b := "hello, world!" ``` 2. 控制流语句 Go语言中的控制流语句包括if、for、switch和select。例如: ``` if a > 0 { fmt.Println("a is positive") } else { fmt.Println("a is non-positive") } for i := 0; i < 10; i++ { fmt.Println(i) } switch day { case "Monday": fmt.Println("Today is Monday") case "Tuesday": fmt.Println("Today is Tuesday") default: fmt.Println("Today is another day") } select { case msg1 := <-ch1: fmt.Println("Received message from ch1:", msg1) case msg2 := <-ch2: fmt.Println("Received message from ch2:", msg2) default: fmt.Println("No message received") } ``` 3. 函数定义和调用 Go语言中的函数定义使用关键字func,函数调用使用函数名和参数列表。例如: ``` func add(a, b int) int { return a + b } sum := add(1, 2) fmt.Println(sum) ``` 4. 结构体和方法 Go语言中的结构体定义使用关键字type,方法定义使用关键字func和结构体类型。例如: ``` type Person struct { Name string Age int } func (p *Person) SayHello() { fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age) } person := Person{Name: "Alice", Age: 25} person.SayHello() ``` 这些是Go语言的一些基本语法,当然还有很多其他的语法特性和细节需要了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值