日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Golang 入门笔记(二)中

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Golang 入门笔记(二)中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

文章目錄

  • 目錄
    • 轉換不同的數據類型
    • 指針
      • 指針地址和指針類型
      • 使用指針修改值
      • 使用指針變量獲取命令行的輸入信息
      • 創建指針 new()
      • 變量生命期
      • 變量逃逸
      • 字符串應用
        • 計算字符串長度
        • 遍歷字符串
        • 獲取字符串的某一段字符

轉換不同的數據類型

可以用類型+變量的方式強制轉換:
int(a)
注意大數變小數時會有截斷問題。
比如:
var a int32=123456789
int16(a)
a就會變小

指針

指針概念在Go語言中被拆分為兩個核心概念:
1類型指針
允許對這個指針類型的數據進行修改。
不能進行偏移和運算。
2切片
由指向起始元素的原始指針、元素數量和容量組成。
安全指針不越界

指針地址和指針類型

每個變量在運行時都擁有一個地址,這個地址代表變量在內存中的位置。
ptr:=&v
ptr 為指針

fmt.Printf("%p ",ptr)

輸出v的地址
使用*ptr 可以得到v的值。

使用指針修改值

通過指針可以修改值。
func swap(a,b *int){
t:=*a
*a:=*b
*b=t
}
x,y:=1,2
swap(&x,&y)

使用指針變量獲取命令行的輸入信息

package main//導入系統包 import ("flag""fmt" )//定義命令行參數 var mode = flag.String("mode1", " ", "process mode")func main() {flag.Parse()fmt.Println(*mode) } PS E:\go\mywork> go run parse.go --mode1=ffast ffast

創建指針 new()

str:=new(string)
*str=“ninja”

變量生命期

變量能夠使用的生命范圍

擁有特殊規則的線性表數據結構。
先進后出。
內存的分配和釋放,相當快。
函數結束后出棧。

無規則數據,大小位置,存放位置未知,過一段時間后需要釋放數據。
內存碎片

變量逃逸

自動決定變量分配方式,提高運行效率。
編譯器根據變量的特征和生命周期,決定使用堆還是棧。
1逃逸分析
不影響程序運行的到棧,其他存活的主程序結束的到堆。
2 取地址發生逃逸
這兩個較為復雜,以后詳細分析
3 原則
go語言不希望開發者把精力放在內存如何分配上。
編譯器的原則是
變量是否被取地址
變量是否逃逸。

字符串應用

字符串類型在業務中的應用可以說是最廣泛的。

計算字符串長度

Go 語言的內建函數 len(),可以用來獲取切片、字符串、通道(channel)等的長度。
下面的代碼可以用len()來獲取字符串的長度。

遍歷字符串

1遍歷每一個ASCII字符
使用for
for i:=0;i<len(theme);i++
2 按Unicode字符遍歷字符串
使用range
for _,s:=range theme

獲取字符串的某一段字符

可以使用string.Index()函數在字符串中搜索另外一個字串。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Golang 入门笔记(二)中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。