1. 程式人生 > >go學習筆記(3)

go學習筆記(3)

在過去一段時間裡面,使用nodejs,或者使用npm 一些指令碼功能就能對一個資源目錄提供一個web的訪問功能,非常方便。在接觸了golang裡後,有一些比較簡潔的程式碼能夠實現過去一直的想法,嘗試搭建一個靜態的web伺服器。至於程式碼是怎樣,golang 的一些案例程式碼發現以下的案例非常有意思。所以今天記錄下來。為了實現一個功能。在打包後,修改登錄檔新增一個滑鼠右鍵的選單,並且對滑鼠右鍵選單實現關聯golang匯出的exe檔案。這樣一來解決了我過去一些想用c#做的程式碼。看如下程式碼案例。

1.構建golang程式

這裡的程式碼中,加上一個執行的引數的判定。當使用右鍵選單時候,外部傳遞進來進行捕捉。

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

func main(){

    path := "file";        
    if( len(os.Args) > 1){
      path = os.Args[1]   
    } 

    fmt.Println(path)
    http.Handle("/", http.FileServer(http.Dir(path)))
    err := http.ListenAndServe(":8080", nil)
    if
err != nil { log.Fatal("ListenAndServe",err) } }

完成後,使用go build 進行編譯構建出一個執行檔案。

2. 新增滑鼠右鍵選單

使用命令regedit進入登錄檔,中
HKEY_CLASSES_ROOT\Directory。這個登錄檔針對資料夾開啟才有效。
這裡寫圖片描述

在這裡新增一個命令資料夾egret,對其修改預設值Server,並在內部建立一個選項命為command。這個項中,需要加上一個值,關聯構建後的exe程式httpgo.exe。

"G:\google\golang小工具\tool\httpgo
.exe" "%1"

這裡寫圖片描述

其中%1 會返回一個路徑給程式。這個程式通過main函式裡面獲取到入口引數。

在除錯過程中,發現os.Args的引數長度大於0,這一點有點奇怪。經過修改下標獲取當選單選項後對應的絕對路徑。

這樣一來,打包後的程式。設定登錄檔選單後,呼叫一下就能實現對某一個資料夾進行實現web目錄。。

這裡寫圖片描述

執行完成後,該小型功能能夠實現到靜態檔案的web功能。這對於弄實驗開發egret非常有意思。但是有一個現象是,當每次執行不同的golang的時候,瀏覽器會記住舊的情況,所以需要刪除快取,方可以完成。這一點,不知道為什麼。在學習golang的時候有點疑惑。

完成後,可以滑鼠右鍵對一個資料夾實現一個web目錄的預覽了。當白鷺打包後的web程式想執行,不妨可以試試這個方法。其實也可以把相應的程式丟到xampp tomcat等伺服器中去。

相關推薦

go學習筆記3 -- package fmt

 package fmt fmt包實現了格式化的I/O函式,這點類似C語言中的printf和scanf,但是更加簡單,其中的格式“佔位符”衍生自 C 佔位符 一般佔位符 布林佔位符 浮點數及其複合構成佔位符 指標 fmt中的方法: // Print 將引數列表

go學習筆記3

在過去一段時間裡面,使用nodejs,或者使用npm 一些指令碼功能就能對一個資源目錄提供一個web的訪問功能,非常方便。在接觸了golang裡後,有一些比較簡潔的程式碼能夠實現過去一直的想法,嘗試搭建一個靜態的web伺服器。至於程式碼是怎樣,golang 的一

TCP/IP詳解學習筆記3IP協議ARP協議和RARP協議

out 處理機 傳輸 包含 發送 res 這也 進行 默認 把這三個協議放到一起學習是因為這三個協議處於同一層,ARP協議用來找到目標主機的Ethernet網卡Mac地址,IP則承載要發送的消息。數據鏈路層可以從ARP得到數據的傳送信息,而從IP得到要傳輸的數據信息。   

spring學習筆記3——bean配置細節註意

collect 1.5 之前 ice ble person name return 引用 1. 一個bean引用另外一個bean 當Person類中有一個屬性是Car,那麽該如何配置呢 person: package com.zj.spring; public class

QT學習筆記3 我的第一個程序

9.png har 中文 gets 有一個 setw 通過 坐標 關系 今天,學習搭建一個空項目,了解程序是如何運行的。 (1)新建一個空項目   1、在創建完空項目之後,項目中只有一個空的項目文件( .pro)        2、然後需要在項目文件(.pro)中添加:

Hibernate學習筆記3---hibernate關聯關系映射

gen -m type foreign out eas ner 機制 路徑 一對一關聯 假設有兩個持久化類(實體類)User與Address,它們之間存在一對一的關系 1,通過主鍵關聯(個人偏向另外一種) User.hbm.xml文件配置 <id name="u

C++深度解析教程學習筆記3函數的擴展

插入 分享 技術 lsp 預處理器 _for 返回 忽略 結合 1.內聯函數 1.1.常量與宏的回顧 (1)C++中的 const 常量可以替代宏常數定義,如: const int A = 3; //等價於 #define A 3 (2)C++中是否有解決方案,可以用來

shell學習筆記3

shell 基礎 雜記if 一、if基礎 1、單分支 1.1 語法 if語句語法 單分支結構語法: if [條件]; then 指令 fi 或 if [條件] then 指令 fi 1.2 例子 [roo

Python學習筆記3

python重要的數據類型Dict和Setdict通過key 查找value(key和value關聯)花括號{ }表示這是一個dict,然後按照key:value,寫出來即可。最後一個key:value的都好可以省略 註意: 單元素的tuple必須在後面多家加一個逗號dict最後的逗號可以省略由於dict也是

莫煩大大TensorFlow學習筆記3----建立神經網絡

nbsp 定義數據 學習筆記 variables ati 選擇 mea 有變 plus 1、def add_layer() 添加神經網絡層: import tensorflow as tf def add_layer( inputs, in_size, out_si

jQuery 學習筆記3內容選擇器、attr方法、prop方法,類的操作

節點 lec ddc 方法 pty 全部 如果 一個 所有 內容選擇器: 1、$("div:empty"): 空的div元素 2、$("div:parent"): 非空div元素 3、$("div:contains(text)"): 包含 text 文本(指定文本)的div

Java暑期學習筆記3

ring out 顯示 字節數 順序 作用 提示 string轉換 gbk # 2018.7.11 # * 1.匿名內部類(只針對重寫一個方法時候使用,不能向下轉型,因為沒有子類類名) * new Inter(){ public

VBA二次學習筆記3——批量合並單元格

false spl png next com src 了吧 merge 昨天 說明(2018-9-16 22:17:49): 1. 昨天運動會,100米八個人跑了第五,400米五個人跑了第三,得了個榨汁機。終於結束了哈哈哈!之前一個星期緊張的天天拉肚子,真是沒出息。。不過養

javaweb-servlet學習筆記3

tps 技術分享 tex 周期 目錄 tom text let 垃圾 servlet的生命周期要經過:實例化,初始化,提供服務,銷毀,回收五個階段。 1.當用戶訪問一個路徑,該路徑對應的servlet被調用的時Servlet就會被實例化。且無論訪問多少次servlet,其

Spring入門學習筆記3——事件處理類

aware super 不能 href his 應用 odi eap app 目錄 Spring中的事件處理 Spring內建事件 監聽Context事件 Example 自定義Spring事件 Spring中的事件處理 ApplicationContext 是Spr

TCP/IP學習筆記3----IP,ARP,RARP協議

ip地址 讀取 出現 請求 直接 ip學習筆記 mac height ttl 把這三個協議放到一起學習是因為這三個協議處於同一層(網絡層協議),ARP協議用來找到目標主機的Ethernet網卡Mac地址,IP則承載要發送的消息。數據鏈路層可以從ARP得到數據的傳送信息,而從

Linux學習筆記3linux服務管理與啟停

重啟 禁用 multi etc 刪除服務 shel ive 系統 運行級別 一、LINUX 系統服務管理 1、RHEL/OEL 6.X及之前   service命令用於對系統服務進行管理,比如啟動(start)、停止(stop)、重啟(restart)、查看狀態(statu

Html學習筆記3

認識標籤 <a>標籤連結到另一個頁面,語法: <a href="目標網址" title="滑鼠滑過顯示的文字">連結顯示的文字</a> 只要為文字加入a標籤後,文字的顏色就會自動變為藍色(被點選過的文字顏色為紫色),通過C

開源容器openshift學習筆記3:新增Image Stream

開篇之前如果沒有安裝openshift環境可以參考我的博文:centos7下安裝openshift 本系列部落格學習筆記參考《開源容器雲openshift》一書:下載連線:https://download.csdn.net/download/u012371097/10745382  

cesium 學習筆記32018.6.11

1.cesium取色方法: Cesium.Color(red, green, blue, alpha) red, green, blue, alpha的取值範圍都是0到1 2.cesium取色方法2: Cesium.Color.fromRgba(0x67ADDFFF); 3.隨