iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
Software Development

你知道Go是什麼嗎?系列 第 1

Day1 - 前言 - Golang簡介

  • 分享至 

  • xImage
  •  

前言

簡單介紹一下,我是剛畢業的待役菜鳥工程師,雖然還沒有工作但還是可以自稱工程師吧?這是我第一次參加鐵人賽,希望透過這次參加比賽,可以增進自己對 Go 語言(Golang)的瞭解。

寫作計畫

由於自己也是邊學邊做筆記,並整理成文章,因此以下只是預計走向,最後並不一定會完全照著規畫走,以下列出預計的目標

  1. 前言
  2. Go簡介
  3. 型態介紹
  4. 流程控制
  5. 函式介紹
  6. 指標、結構
  7. 介面
  8. gin、docker嘗試實作網站後端
    .
    .
    .

走一步算一步,還沒學到後面也不知道再來要介紹什麼,目前先以網站後端為目標。

Go Language

你知道這是什麼嗎?你相信這個奇怪的小東西,在stack overflow上排行第十四嗎?偷偷告訴你,這語言才發布大概14年而已。巧合嗎?我不這麼認為。

上面那隻藍色地鼠是Gopher,是Golang的吉祥物,Gopher現在又被代稱為使用Go的工程師,關於Gopher的故事可以在The Go Gopher看到

相信大家都聽過Go這門語言吧?好吧沒聽過也沒關係,我簡單介紹一下,Go(又稱Golang)是Google在2009年開發出,由C語言編寫而成,且為靜態強型別、編譯型、並發型,並具有垃圾回收功能的程式語言。列出幾個Go的特性

  • 開放原始碼 (open source)
  • 靜態型別的編譯語言;但語法類似於腳本語言 (scripting language)
  • 跨平台 (cross-platform)
  • 內建垃圾回收 (garbage collection),可手動調整觸發時機
  • 內建倂行處理 (concurrency) 的語法
  • 內建函式程式設計 (functional programming)
  • 輕量級物件 (lightweight object) 系統
  • 程式風格強制統一
  • 快速編譯
  • 內建開發相關工具
  • 豐富的標準函式庫
  • 成長中的社群資源

撰寫風格

Go是由C語言演化而來,因此撰寫風格上也貼近原先的C語言,Go也有一些格式上的要求,使大家的程式碼格式並不會差太多。

  • Go每行程式碼不需要分號(;)不會再花一小時找分號了
  • 大括號{}有規範格式,左括號不能換行
  • 條件式如for, if, switch不需要小括號

優點

1. 效能高

Go是編譯語言,效能相對於直譯語言來說效能快很多。

2. 編譯及部署快速

編譯完之後的執行檔可以直接部署上機器。

3. 保密性高

編譯完的檔案可直接執行,且Go檔案不能反編譯,因此保密性相對高。

4. 多平台編譯

Go可以直接指定編譯成各種平台版本,像是window或linux,不用煩惱平台問題。

5. 代碼風格清晰、簡單

語法簡潔,易於學習,雖然不及腳本語言Python, Ruby簡短,但以編譯語言來說已相當簡潔。

參考資料

Tour of Go:
https://go.dev/tour

30天學會Golang系列:
https://ithelp.ithome.com.tw/users/20119741/ironman/2517

入吾Go中:走訪Go語言內部實作系列:
https://ithelp.ithome.com.tw/users/20103524/ironman/2589

Golang 程式設計教學簡介:
https://opensourcedoc.com/golang-programming/intro/

從0開始的golang web server系列:
https://ithelp.ithome.com.tw/users/20129607/ironman/3189


下一篇
Day2 - Hello world - Golang
系列文
你知道Go是什麼嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言