iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0

Golang 基本介紹:

是 Google 開發的靜態編譯程式語言,支援垃圾回收與併發,跟 C 的撰寫邏輯相似。要了解 Go 的特性,我們需要拆解何謂靜態語言以及何謂編譯式語言。

什麼是靜態程式語言?

簡單來說,靜態語言的意思,就是當你宣告一個變數時,你就需要同時宣告此變數會存放的資料型態為何;反之,動態語言則不需要在宣告變數時,就確定存放的資料型態。
大家比較熟悉的靜態語言有:C、Java、Golang 等,動態則是:JavaScript、Python、Ruby
用一些程式碼來舉例,大家可能也會比較清楚~

// 變數 age 存放 value 3
var age int = 3
age = "jimmy"
// cannot use "jimmy" (untyped string constant) as int value in assignment
## 將 345 放進 age 變數
age = 345
## 將 age 變數改成放 string 
age = "jimmy"

從以上兩個例子可以看出來,在 Go 裡面,當變數被賦值時,此變數能存放的資料型態也被定義了,當你改變時,就會給你報錯,反之 Python 則是可以讓你任意更動。

靜態與動態語言各有好處,最主要的差別在於靜態語言是事先定義好資料型態,所以程式在執行時,不需要多花效能來判斷資料型態,可以提升程式的執行速度。而動態語言的好處,則是撰寫簡單,不需要在宣告變數時,就寫定其資料型態,對於新手來說相對簡單好用。

什麼是編譯式語言?

編譯式與直譯式語言最大的差別,在於程式執行的方式不同,

  • 編譯式:
    當我們寫完程式腳本時,我們需要先將腳本 compile(編譯)成電腦懂的腳本,在將整包腳本拿去執行。
  • 直譯式:
    當我們寫完程式腳本時,直接使用直譯器一行一行翻譯成電腦語言並執行。

主要的優缺點就跟他們的執行特性相關,可以這樣去理解。
因為編譯式是整包打包轉譯、運算,而直譯是一行一行翻譯再執行所以

  1. 編譯式執行效率較佳
  2. 直譯式相對容易 Debug
  3. 編譯式語言編譯完的腳本,可以直接在各類 OS 系統中執行,因為其編譯完的腳本,就是電腦懂的語句。
  4. 直譯式則需要在特定的執行載體才能在電腦內執行相對應的腳本

因為這次主要是分享學 Golang 特性,關於語言特性的比較我這邊只會簡單到過,其他更多的介紹跟差異,就不在此展開,推薦各位看此篇文章:https://totoroliu.medium.com/%E7%B7%A8%E8%AD%AF%E8%AA%9E%E8%A8%80-vs-%E7%9B%B4%E8%AD%AF%E8%AA%9E%E8%A8%80-5f34e6bae051

有滿詳細的介紹~

今日總結: Golang 是一種編譯式靜態語言,未來我們會在各式程式碼中,發現這些特性的~

好啦,今天就講到這邊,明天見!


上一篇
Day 1 : Golang 30 天學習之旅
下一篇
Day3 : 從 Hello World 看 Golang
系列文
從零開始學 Golang,開發屬於自己的網頁5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言