GO 介紹

拆尼斯、帕丁顿發表於2024-04-01
###### GO介紹#####

# Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言

# Go是靜態強型別語言,是區別於解析型語言的編譯型語言(靜態:是否需要編譯 強型別:不同型別不允許直接運算)。
# python 是動態強型別:不需要編譯,不同型別不允許直接運算
# js 動態弱型別

解析型語言——原始碼是先翻譯為中間程式碼,然後由解析器對程式碼進行解釋執行。
編譯型語言——原始碼編譯生成機器語言,然後由機器直接執行機器碼即可執行。

# 跨平臺的編譯型語言:交叉編譯


##### 常見程式語言比較#########
-編譯型:
    -java:
        -jdk:java整合開發環境---》java開發需要用它---》好多公司執行java,也裝
        -jre:java 執行環境,java程式執行,需要裝
        -jvm:java虛擬機器,java--》原始碼---》位元組碼--》執行在jvm上
        
        -java原始碼---》編譯後---》不是可執行檔案---》位元組碼檔案,jar,war包---》執行在jvm上
        -編譯型語言--》跟傳統編譯型語言有區別
        
        -sun公司---》甲骨文--》oracle
        -mysql免費開源軟體---》oracle投資了,買了它
        -安卓開發需要java----go:編譯後--->直接是可執行檔案--->交叉編譯--》跨平臺編譯
    ----------以下都是  需要在不同平臺編譯-----------
    -c
    -C++
    -C#
-解釋型:---》無論開發還是執行---》都需要直譯器
    -python:pipinstaller:https://zhuanlan.zhihu.com/p/430490285
    -php
    -nodejs
    -。。。
   
    
# 如何保證python程式碼安全
    -1 打包成可執行檔案 部署
    -2 把原始碼做到docker中
    -3 專案執行起來,原始碼刪除
    
    
# go 發展歷史
2009年11月7日 weekly.2009-11-06 —— 早期的版本
2012年3月28日 go1 —— 穩定版版的釋出
2015年8月19日 go1.5 —— 實現的架構變化,同時保留了和舊版本的相容性,本次更新中移除了”最後殘餘的C程式碼”。---》程式語言自舉
20202 月 go 1.14— — 現在 Go Module
    -包管理

    
# Go語言簡單易學,天生支援併發,完美契合當下高併發的網際網路生態

開發環境搭建

裝倆東西
    - go sdk:https://golang.google.cn/dl/
        -1.22.1 版本
        -一路下一步--》裝好---》不需要配置環境變數
        -開啟cmd
            -輸入 go version
    -IDE整合開發工具
        -Goland:
        -vscode

第一個helloworld

# 使用goland建立專案
    -go.mod  # 等同於 package.json, requirements.txt pom.xml
    
// 宣告當前檔案屬於哪個包,改成main 包
// 1 重點:go程式要執行,必須有個main包,入口是main函式
package main

// 2 匯入fmt包---》列印函式在這個包下
import "fmt"

// 3 函式
func main() {
    // 4 列印hello world
    fmt.Println("hello world")

}

// 5 執行專案幾種方式
/*
1 go build go檔案---》成可執行檔案---》執行可執行檔案
2 右鍵---》執行
3 main函式上點 綠色箭頭
4 使用命令:go run demo01.go   編譯並執行
*/

命名規範

#  一 變數定義規範
Go語言中的函式名、變數名、常量名、型別名、語句標號和包名等所有的命名,都遵循一個簡單的命名規則:
    # 1 以一個名字必須以一個字母(Unicode字母)或下劃線開頭,後面可以跟任意數量的字母、數字或下劃線
    # 2    大寫字母和小寫字母是不同的:Name和name是兩個不同的變數
    # 3 關鍵字和保留字都不建議用作變數名

# 二 關鍵字
Go語言中關鍵字有25個;關鍵字不能用於自定義名字,只能在特定語法結構中使用。

break      default       func     interface   select
case       defer         go       map         struct
chan       else          goto     package     switch
const      fallthrough   if       range       type
continue   for           import   return      var

# 三 保留字
go語言中有37個保留字,主要對應內建的常量、型別和函式

內建常量: true false iota nil

內建型別:  int int8 int16 int32 int64
          uint uint8 uint16 uint32 uint64 uintptr
          float32 float64 complex128 complex64
          bool byte rune string error

內建函式: make len cap new append copy close delete
          complex real imag
          panic recover
        
        
# 四 注意
-這些保留字並不是關鍵字,可以在定義中重新使用它們。在一些特殊的場景中重新定義它們也是有意義的,但是也要注意避免過度而引起語義混亂
-變數定義使用駝峰
    go:AgeOfPerson
    python:age_of_person
    java:駝峰
-go 檔名
    -python :下劃線
    -go:下劃線
    -java:駝峰

相關文章