公告版位
需要找什麼嗎? 左邊分類或許可以幫助你...

目前分類:[程式語言] Go (31)

瀏覽方式: 標題列表 簡短摘要

package main

import (
       "crypto/md5"
       "crypto/sha1"
       "crypto/sha256"
       "fmt"
       "io"
       "os"
)

func main() {

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
       "encoding/base64"
       "fmt"
)

func main() {
       data := "彥霖的部落格:http://lolikitty.pixnet.net"
       fmt.Println("加密前文字:", data)

       code := base64.StdEncoding.EncodeToString([]byte(data))

黃彥霖 發表在 痞客邦 留言(1) 人氣()

Json 編碼 1:

package main

import (
       "fmt"
       "encoding/json"
)

func main() {
       m := User{"乃木坂春香", "abcde@yahoo.com", "0932-111-222", "Japan"}
       b, _ := json.Marshal(m)
       fmt.Println(string(b))

黃彥霖 發表在 痞客邦 留言(0) 人氣()

增加 Goroutine 並發數量:

      要增加 Goroutine 並發數量,除了要增大 RAM 記憶體之外,還要增大作業系統的:虛擬記憶體 !! 根據我之前測試,我 RAM 有16GB,然後我寫了一個測試程式,查看最高可以乘載多少並發數量,發現最高只能承受 170萬條 Goroutine ,此時記憶體只使用8.5GB,然後作業系統跳出記憶體不足 !! 我明明裝16GB記憶體但是只使用8.5GB 卻跟我說記憶體不足? 於是我調了作業系統的虛擬記憶體後,把虛擬記憶體擴大到10GB,發現它可以承受 400萬條 Goroutine !! ( 此時16GB物理記憶體已滿 ),由此可知要增加 Goroutine 執行數量,調虛擬記憶體是必要的手段,否則 RAM 在大也無用...

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
        "fmt"
)

func main() {
       A()

       fmt.Println("B():", B())

       C(3, 5)

       a, b := D()
       _, c := D() // 底線代表不使用

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
    "fmt"
)

func main() {
   fmt.Println("For 的正常寫法:")
      for i := 0; i < 5; i++ {
         fmt.Println(i)
   }

   fmt.Println("For 的平行寫法:")

黃彥霖 發表在 痞客邦 留言(0) 人氣()

注意事項:函式開頭大寫代表公開函式 (Public Function),函式開頭小寫代表不公開函示 (Private Function)

預設模組
回傳  常數  用途
 i, k  range <[]array> 這只能用在 for 迴圈上的(陣列、通道), i = 遞增,k = 該陣列的 i 地址的值
回傳 函數 用途
   print()  列印  
   println()  換行列印 
   len(<[] array>)  取得"實際儲存個數"的陣列大小
   cap(<[] array>)  取得"分配個數"的陣列大小
     
     

 

runtime 
執行時期模組
回傳  常數  用途
 string  runtime.GOOS  回傳目前作業系統名稱(非版本),如:windows
回傳 函數 用途
int  runtime.NumCPU()  回傳目前物理 (現實中) CPU 數量
void  runtime.GOMAXPROCS(n int)  設定 Golang 運行時可以使用的CPU數量
     

 

 

 

 

 

黃彥霖 發表在 痞客邦 留言(0) 人氣()

package main

import (
   "fmt"
   "time"
)


func main() {
   s := time.Now()

    // 你要測試的程式碼:例如迴圈...

黃彥霖 發表在 痞客邦 留言(0) 人氣()

看了標題就會知道講的其實都是同樣的東西,但是以官方文黨來看的話似乎是"夠程" ( Goroutine ) 才是正確的。
那麼在 Golang 裡 如何產生一個 Goroutine 呢?

這是一個普通的函數:

func A(){

    fmt.Println("A")

}

按照以前我們調用函數的方式,還是單一 Goroutine,例如這樣呼叫:

黃彥霖 發表在 痞客邦 留言(0) 人氣()

1    

2

3

4

import "fmt"package main

func main() {

    fmt.Println("Hellooooo World !! 你好世界 !!");

}

 

輸出結果:Hellooooo World !! 你好世界 !!                                

黃彥霖 發表在 痞客邦 留言(0) 人氣()

 

Eclipse安裝插件更新中輸入:http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/

之後再進行安裝即可。

記得配置Go的安裝路徑,之後即可開始選寫 Go 程式


黃彥霖 發表在 痞客邦 留言(4) 人氣()

«12