Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。goroutine:由GO運行環境管理的輕量級線程channel:有類型的管道,操作符為 <- 資料流向箭頭指向的方向使用make(chan 緩衝資料類型 緩衝區長度)來建立 使用close(chan)來關閉管道,只有寄件者才允許關閉管道例ch := make(chan int 10)ch <- 10a := <- ch或a := int(0)a = <-
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Golang可以通過syscall包中的相關socket函數(Windows和Linux中syscall中網路編程的函數不太一樣)來進行網路編程,可以用我們熟悉的方法使用raw socket,因為最近在搞一些協議的學習,所以特意試了試,和普通的linux+C的socket編程基本沒什麼區別。代碼如下:package mainimport ( "bytes" "encoding/binary
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。很多時候,尤其是遊戲開發中,策劃往往將文檔,資料等寫入excel中,程式,需要通過各種方式解析excel,讓程式可以讀。常見的方案有:1.將excel轉換為csv,逗號分割方式,程式通過split逗號按照特定格式進行轉換。(功能不夠強大,格式要求很嚴,無法靈活配置很多特殊的功能)2.將excel轉換為lua table。這是C++遊戲開發的常用方式。
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。(pprof) topTotal: 53.0 MB 29.5 55.7% 55.7% 29.5 55.7% reflect.unsafe_NewArray 20.0 37.7% 93.4% 20.0 37.7% encoding/json.(*decodeState).literalStore 2.5 4.7% 98.1% 2.5 4.7%
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。用logistic
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1、簡單一實例package mainimport ("os""text/template")func main() {const xichen = `Hello World {{.}}`M := template.New("")M.Parse(di)M.Execute(os.Stdout, "曦晨")}2、迴圈使用package mainimport
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1. Implement the Walk function.2. Test the Walk function.The function tree.New(k) constructs a randomly-structured binary tree holding the values k, 2k, 3k, ..., 10k.Create a new channel ch and kick off the walker:go
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。直接貼代碼吧。服務端:package mainimport ("fmt""io""io/ioutil""net/http")func main() {http.HandleFunc("/upload", upload)http.ListenAndServe(":8080", nil)}func upload(w
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("bufio""fmt""io""io/ioutil""net/http""os""regexp""strconv""strings""time")func main() {fmt.Print("輸入要查詢的字元:")
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。//服務端 package mainimport ("net""os")func serve(s net.Conn) {var buf [1024]bytefor {n, err := s.Read(&buf)if err != nil || n == 0 {break;}s.Write(buf[0:n])}}func main() {l, e :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Fibonacci數列:1,1,2,3,5,8,13,21,,, (即從第三項起,每一項的值都等於前兩項之後)第一種,使用遞迴:func fibonacci(a int) int {if a == 1 || a == 2 {return 1}return fibonacci(a-1) + fibonacci(a-2)}第二種,不使用遞迴:func fibonacci_version2(index int) int {if
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。說明:程式是轉載過來的, 但是開始運行時,沒有成功,後來去看了下https://github.com/lxn/walk 這個包的使用方法,成功了。希望對其他有借鑒。編譯方法見:https://github.com/lxn/walk這裡有一個檔案需要放在編譯後的檔案夾中,就是test.exe.manifest=== test.gopackage mainimport ( "fmt" "log
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一. http用戶端1. http.Client和http.NewRequest來類比請求 package main import ( "net/http" "io/ioutil" "fmt") func main() { client := &http.Client{} reqest, _ := http.NewRequest("
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這個案例使用了一個簡單的畫圖,並將其寫入到http的包裡面,只需幾步, 開啟http://localhost:999/即可看到, 其它還在研究當中, 研究出來自然跟大家分享.package mainimport ("image""image/color""image/draw""image/png""net/http")var (blue
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。檔案讀寫相關的函數在os包中,因此需要先匯入os包。主要有以下幾個函數func Create(name string) (file *File, err error) 直接通過紋面建立檔案 func NewFile(fd uintptr, name string) *File func Open(name string) (file *File, err error)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。由於某些原因,國內使用者不能很好到訪問golang.org,如何在本地建一個和官網一樣到文檔系統呢?在網上看來一個視屏資料,摘錄如下:在console介面中輸入一下命令: godoc -http=:80 //80可以換成沒有被佔用到任何連接埠。此時開啟瀏覽器輸入: http://localhost,官網到協助檔案瞬間就展示在你面前來。(go應該是最新到版本才會和官網到文檔一樣)。如果不是80連接埠,需要在地址上加上
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。#include <stdio.h>#include <string.h>#include "protocol.h"#include "datalink.h"#define DATA_TIMER 3000#define ACK_TIMER 1500#define MAX_SEQ 7void inc(unsigned char* number){(*number)++;if(
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。/** * Created by Administrator on 13-12-18. */package mainimport ("fmt""os")func main() {str := "hello, 世界"n := len(str)for i := 0; i < n; i++ {fmt.Fprintf(os.Stdout, "%d %v %c\n",
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package ceimport ("crypto/md5""math/rand")func getmd5(s []byte) []byte {md := md5.New()md.Write(s)x := md.Sum([]byte(""))return x}func T() string {name := rangdom_string()x := getmd5(name)if x[
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。/* 比較一下 :http://blog.csdn.net/iilovetopview/article/details/43745059go的運算效率遜於D(LDC 編譯器0.15.1(LLVM3.6 ,MSVC64))。用“數學公式”法解下題: 有一個整數n,寫一個函數f(n),返回0到n之間出現的"1"的個數。 比如f(13)=6,現在f(1)=1,問下一個最大的f(n)=n的n是什嗎?*/package