go os.FileMode()傳值問題
linux中的許可權rwx分別對應4 2 1,相加的值為7,習慣了linux中許可權命令使用,會將 os.FileMode(777) 誤解等價於 777許可權,但是將777傳入os.FileMode,你會發現列印出來的不是 -rwxrwxrwx
可能會想只要在程式設計的時候,在前面加個0不就行了?但是有情況是這樣的,就是外部傳入一個變數值是十進位制數777
package mainimport ( "fmt" "os")func main() { fmt.Println(os.FileMode(777), 777) fmt.Println(os.FileMode(0777), 0777) } 輸出結果: -r----x--x 777-rwxrwxrwx 511
正確使用os.FileMode()時,應該先將777 先看成八進位制,然後轉成十進位制值,傳入os.FileMode中,轉換方法如下
方法一:使用標準庫中的strconv.ParseInt,如下
mode := 777um, _ := strconv.ParseInt(strconv.Itoa(mode), 8, 0)// 完整測試程式碼package mainimport ( "fmt" "os" "strconv")func main() { um, _ := strconv.ParseInt(strconv.Itoa(777), 8, 0) fmt.Println(os.FileMode(777), 777) fmt.Println(os.FileMode(0777), 0777) fmt.Println(os.FileMode(um), um) } 輸出: -r----x--x 777-rwxrwxrwx 511-rwxrwxrwx 511
方法二:自己編寫轉換進位制函式
作者:laijh
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2819965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go 語言傳值和深淺複製問題Go
- python中傳值和傳地址問題Python
- vue元件(component)傳值問題Vue元件
- 父子元件之間的傳值問題元件
- java經典問題:傳值還是傳引用(轉)Java
- GO切片傳值/引用/指標Go指標
- js中 函式引數的 傳值/傳引用 問題JS函式
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- 元件複用傳值(待解決問題)元件
- Ajax與Flask傳值的跨域問題Flask跨域
- v-for 迴圈 index的傳值問題?Index
- 頁面傳值地址爛亂碼問題
- java值物件的傳輸問題請教Java物件
- go 值傳遞和地址傳遞的例子Go
- 一個關於值傳遞呼叫的問題
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- Go語言引數傳遞是傳值還是傳引用Go
- 函式呼叫引數變數傳值的問題函式變數
- vue使用的props元件傳值問題處理Vue元件
- go channel問題Go
- 表單傳值出現亂碼問題解決方案
- go語言引數傳遞到底是傳值還是傳引用Go
- (求教)關於js函式按值、引用傳遞的問題JS函式
- vue 父元件props傳值子元件時 的更新問題Vue元件
- database 空值問題Database
- 在html中使用axios傳送請求到servlet時遇到的傳值問題HTMLiOSServlet
- vue-父子元件之傳值和單項資料流問題Vue元件
- 有關C++引數傳值的一個問題探討C++
- GO 指標*&問題疑問Go指標
- defer問題——面試Go必看面試Go
- Go TCP 粘包問題GoTCP
- go熱更新問題求助Go
- go除錯的問題。Go除錯
- go path 存在的問題Go
- MySQL 最小缺失值問題MySql
- Go 之基礎速學 (八) 方法當中的返回值問題(小白篇)Go
- go mod init報錯問題Go
- Go mod 使用遇到的問題Go