golang下載,golang下載庫

本文目錄一覽:

Golang入門到項目實戰 | golang簡介及安裝

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style 並發計算。

go語言特點

go語言的應用領域

哪些公司(項目)在使用go語言

下載開發包

windows下安裝

1.打開下載的msi可執行文件,根據提示進行安裝。默認會安裝在c:/Program Files/go目錄下面。會自動添加go可執行文件環境變量。

2.驗證安裝情況

a.打開命令行

b. 輸入$ go version

linux下安裝

1.在/usr/local/下面創建一個目錄go

2.下載壓縮文件到該目錄(/usr/local/go),並解壓縮

3.添加/usr/local/go/bin到PATH環境變量,打開$HOME/.profile 或者/etc/profile輸入如下內容:

4.執行如下命令使得配置文件及時生效

驗證

1.如果你的mac有Homebrew包管理工具,可以使用它來安裝

2.如果沒有下載mac安裝包,根據提示安裝

3.默認安裝在/usr/local/go下面

4.設置環境變量,同Linux

golang是什麼意思

Go語言(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style 並發計算。 擴展資料

Go語言主要用作服務器端開發,其定位是用來開發「大型軟件」的,適合於很多程序員一起開發大型軟件,並且開發周期長,支持雲計算的網絡服務。Go語言能夠讓程序員快速開發,並且在軟件不斷的’增長過程中,它能讓程序員更容易地進行維護和修改。它融合了傳統編譯型語言的高效性和腳本語言的易用性和富於表達性。

Go語言作為服務器編程語言,很適合處理日誌、數據打包、虛擬機處理、文件系統、分佈式系統、數據庫代理等;網絡編程方面,Go語言廣泛應用於Web應用、API應用、下載應用等;除此之外,Go語言還可用於內存數據庫和雲平台領域,目前國外很多雲平台都是採用Go開發。

如何為Linux安裝Go語言

Go 語言又稱為 golang, 是由 Google 最初開發的一種開源編程語言,其在設計時就遵循了簡單、安全和速度的 3 大原則。Go 語言具有多種調試、測試、分析和代碼審查工具,如今 Go 語言和工具已在大多數 Linux 發行版本的源庫中進行提供,本文我就來說明如何為 Linux 安裝 Go 語言。Ubuntu、Debian或Linux Mint安裝Go語言基於 Debian的 Linux 發行版本都可以使用 apt-get 命令來進行安裝:sudo apt-get install golang要查看當前系統安裝的 Go 語言版本可以使用如下命令:go version由於 Go 代碼必需保存在 workspace(工作區)中,所以我們必需在 Home 目錄(例如 ~/workspace)創建一個workspace 目錄並定義 GOPATH 環境變量指向該目錄,這個目錄將被 Go 工具用於保存和編輯二進制文件。mkdir ~/workspaceecho ‘export GOPATH=”$HOME/workspace”‘ ~/.bashrcsource ~/.bashrc根據不同的需要,我們可以使用 apt-get 安裝 Go tools:sudo apt-cache search golangFedora、CentOS或RHEL安裝Go語言基於 Red Hat 的 Linux 發行版本都可以使用 yum 命令來進行安裝:sudo yum install golang要查看當前系統安裝的 Go 語言版本可以使用如下命令:go version接下來還是在 Home 目錄(例如 ~/workspace)創建一個 workspace 目錄並定義 GOPATH 環境變量指向該目錄,這個目錄將被 Go 工具用於保存和編輯二進制文件。mkdir ~/workspaceecho ‘export GOPATH=”$HOME/workspace”‘ ~/.bashrcsource ~/.bashrc根據不同的需要,我們可以使用 yum 安裝 Go tools:yum search golang為Linux手動安裝Go語言由於大家使用的 Linux 源不盡相同,也不見得是最新版本或需要版本的 Go 語言包,所以我們說一下如何手動安裝指定版本。下載 Go 語言文件64-bit Linuxwget Linuxwget 下載地址:解壓二進制文件到 /usr/local 目錄sudo tar -xzf go1.4.2.linux-xxx.tar.gz -C /usr/local使用 vi 在環境變量配置文件 /etc/profile 中增加如下內容:export PATH=$PATH:/usr/local/go/bin檢查 Go 語言版本go version定義 GOPATH 環境變量到 workspace 目錄export GOPATH=”$HOME/workspace

如何Golang開發Android應用

環境配置好複雜,我不得不嘮叨幾句。

需要下載golang1.4rc版,下載ndk,然後編譯。 然後用go get 下載gobind這個工具, 然後,將寫好的代碼用gobind轉化下,然後使用特殊的編譯命令,將代碼編譯成.so文件,將生成的相關文件,放到android studio的項目中。然後java代碼中,利用jni調用引用的代碼。

… 好,接着往下看吧。

環境準備

一台Linux 64的機器

一個帶有AndroidStudioIDE的開發機器

因為環境配置實在複雜,所以我們引入的docker。

docker pull codeskyblue/docker-goandroid

docker run –rm -ti codeskyblue/docker-goandroid bash

cd example; echo “view example projects

docker起來之後,什麼就都配置好了,NDK啦,java啦,GO的環境變量了,等等,並且還預裝了vim,gradle,tmux,git,syncthing,svn

開始寫代碼

寫代碼之前,先約定下目錄結構

go的代碼都放在src/golib下,編譯使用make.bash編譯腳本,看下這個文件樹

.

|– app.iml

|– build.gradle

|– libs/armeabi-v7a # go編譯生成的so文件

| `– libgojni.so

|– main.go_tmpl # 一個模板文件,先不用管它

|– make.bash # 編譯腳本,用來生成.so和Java代碼

`– src

|– golib

| |– hi

| | |– go_hi�0�2�0�2�0�2 # 自動生成的代碼

| | | `– go_hi.go

| | `– hi.go # 需要編寫的代碼

| `– main.go

`– main

|– AndroidManifest.xml

|– java

| |– go # 自動生成的代碼

| | |– Go.java

| | |– Seq.java

| | `– hi

| | `– Hi.java

| `– me/shengxiang/gohello # 主要的邏輯代碼

| `– MainActivity.java

`– res

我已經寫了一個例子,先直接搞下來

編譯下,試試行不行(就算不行問題應該也不大,因為大問題都被我消滅了)

cd GoHello/app

./make.bash

../gradlew build

一切順利的話在build/outputs/apk下應該可以看到app-debug.apk這個文件。(劇透下,這個文件只有800多K)

編譯好的我放到qiniu上了,可以點擊下載看看

下面可以嘗試改改,我拋磚引玉說下

打開hi.go這個文件

hi.go的內容,比較簡單,我們寫Go代碼主要就是這部分

// Package hi provides a function for saying hello.

package hi

import “fmt”

func Hello(name string) {

fmt.Printf(“Hello, %s!\n”, name)

return “(Go)World”

}

文件末尾添加下面這行代碼

func Welcome(name string) string {

return fmt.Sprintf(“Welcome %s to the go world”, name)

}

使用./make.bash重新編譯下

打開MainActivity.java 修改下OnClickListener事件

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String message = Hi.Welcome(“yourname”);

Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();

}

});

編譯運行下,把生成的apk安裝到手機上試試。

原理解讀(有興趣的接着看)

首先說下gobind這個工具。

go_hi/go_hi.go這個文件時通過gobind這個工具生成的,用來配合一個簡單的程序,生成.so文件

// go_hi.go

package go_hi

import (

“golang.org/x/mobile/bind/seq”

“example/hi”

)

func proxy_Hello(out, in *seq.Buffer) {

param_name := in.ReadUTF16()

hi.Hello(param_name)

}

func init() {

seq.Register(“hi”, 1, proxy_Hello)

}

這個簡單的程序內容是這樣的

// main.go

package main

import (

“golang.org/x/mobile/app”

_ “golang.org/x/mobile/bind/java”

_ “example/hi/go_hi”

)

func main() {

app.Run(app.Callbacks{})

}

src/MyActivity.java文件內容是這樣的

import …

import go.Go; // 引入Go這個包

import go.hi.Hi; // gobind生成的代碼

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Go.init(getApplicationContext()); // 初始化兩個線程

Hi.Hello(“world”);

}

}

其中有一句Go.init(…)這裡再看go.Go這個包是什麼樣子的

public final class Go {

// init loads libgojni.so and starts the runtime.

public static void init(Context context) {

… 判斷該函數是否該執行的代碼 — 省略 —

System.loadLibrary(“gojni”); // gojni需要這句

new Thread(“GoMain”) {

public void run() {

Go.run(); // run()是一個native方法

}

}.start();

Go.waitForRun(); // 這個也是一個native方法

// 這部分可以理解為,啟動了一個後台線程不斷的接收結果到緩存中。

new Thread(“GoReceive”) {

public void run() { Seq.receive(); }

}.start();

}

private static boolean running = false;

private static native void run();

private static native void waitForRun();

}

MyActivity.java中還有段代碼是 Hi.Hello(“world”);,打開Hi.java路徑在src/go/hi/Hi.java,這個文件也是gobind生成的,是用來給java方便的調用.so文件

// Hi.java

// File is generated by gobind. Do not edit.

package go.hi;

import go.Seq;

public abstract class Hi {

private Hi() {} // uninstantiable

public static void Hello(String name) {

go.Seq _in = new go.Seq();

go.Seq _out = new go.Seq();

_in.writeUTF16(name);

Seq.send(DESCRIPTOR, CALL_Hello, _in, _out); // 下面接著說

}

private static final int CALL_Hello = 1;

private static final String DESCRIPTOR = “hi”;

}

Seq.send這部分實際上最終調用的是一段go代碼

func Send(descriptor string, code int, req *C.uint8_t, reqlen C.size_t, res **C.uint8_t, reslen *C.size_t) {

fn := seq.Registry[descriptor][code]

in := new(seq.Buffer)

if reqlen 0 {

in.Data = (*[maxSliceLen]byte)(unsafe.Pointer(req))[:reqlen]

}

out := new(seq.Buffer)

fn(out, in)

seqToBuf(res, reslen, out)

}

轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦

如何在Windows下安裝Go語言編程環境

下載安裝包

安裝包下載地址:golang.org/dl/

這裡選擇下載Windows版本,點擊鏈接打開的頁面可能不會開始下載;地址欄里會顯示完整的下載地址,如:golang.org/doc/install?download=go1.5.1.windows-amd64.msi,不開始下載也沒關係,我們複製一下下載地址,用迅雷之類的下載工具下。

開始安裝

一路下一步就行了,沒什麼需要設置的,安裝目錄最好保持默認,避免遇到一些怪問題。

安裝完成之後就可以打開命令行,看看安裝成功了沒有;

任意目錄下,直接執行「go」,能看到類似以下內容就對了:

或者執行:

[plain] view plain copy

C:\go version

go version go1.5.1 windows/amd64

注意:我在安裝完成之後執行「go」的時候就提示找不到文件或目錄,我打開環境變量,在用戶變量里加了一個PATH,

檢查系統變量「PATH」中也有「C:\Go\bin」,然後就在後面加了一個分號,確定保存之後再打開命令行就可以了,也不知道到底是哪個起作用了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/157989.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:38
下一篇 2024-11-19 00:38

相關推薦

  • 使用Golang調用Python

    在現代軟件開發中,多種編程語言的協作是相當普遍的。其中一種使用場景是Golang調用Python,這使得在使用Python庫的同時,可以利用Golang的高性能和強大並發能力。這篇…

    編程 2025-04-29
  • 使用Golang創建黑色背景圖片的方法

    本文將從多個方面介紹使用Golang創建黑色背景圖片的方法。 一、安裝必要的代碼庫和工具 在開始創建黑色背景圖片之前,我們需要先安裝必要的代碼庫和工具: go get -u git…

    編程 2025-04-29
  • Golang中使用strings.Split函數進行字符串分割的方法

    一、Split函數的基本用法 字符串是編程中常見的數據類型,它們可以在程序中被處理、存儲和傳輸。在Go語言中,字符串也是一個基本的數據類型,而strings包提供了一些操作字符串的…

    編程 2025-04-23
  • Golang環境變量全面解析

    Golang是一門非常流行的開發語言,擁有高效的CGO、簡單易懂的語法、高並發能力等優點,然而它也需要使用環境變量來配置一些參數。在本篇文章中,我們將從多個方面對Golang環境變…

    編程 2025-04-23
  • 深入下探golang http server

    Go語言已經成為了軟件開發領域的熱門語言,它的高性能、應用廣泛、安全性好,使得它成為了眾多開發者心目中的首選編程語言。在眾多應用場景中,golang http server的應用非…

    編程 2025-04-23
  • Compacted:一個高性能的Golang緩存庫

    一、簡介 Compacted是一個使用Golang編寫的緩存庫,旨在提供高性能的內存緩存功能。相對於其他常見的緩存庫,Compacted在內存使用和性能方面都做了一定的優化。 緩存…

    編程 2025-04-23
  • Golang nil解析

    一、什麼是nil Nil是Golang語言中的一個預定義標識符,表示一個零值對象,通常表示一個空指針。Nil被定義為指針類型、函數類型、接口類型、map類型、Slice類型、Cha…

    編程 2025-04-23
  • Golang中文社區介紹

    Go語言或者叫Golang是一個開源項目,目前是由Google開發維護的一種靜態類型、並發安全、編譯型的編程語言。Go語言的特點是結構清晰、並發能力強、具有垃圾回收機制並且支持跨平…

    編程 2025-04-23
  • 詳解golang walk控件庫

    Golang提供的可視化庫有很多個,其中walk是一個比較好用且強大的庫。本文將從多個方面對walk進行詳細闡述,包括基本控件、布局、菜單、圖標等方面的內容。 一、控件基礎 Gol…

    編程 2025-04-22
  • Golang泛型詳解

    Golang泛型成為眾多開發人員關注的話題,因為它使得代碼更加通用、可重用、簡單、易於維護。那麼,什麼是泛型、為什麼它如此重要,如何使用它?本文將從多個方面為您詳細闡述Golang…

    編程 2025-04-20

發表回復

登錄後才能評論