欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>go语言获取系统盘符的方法

go语言获取系统盘符的方法

2022-11-18 08:41:32 收藏本文 下载本文

“狂野红烧鸭”通过精心收集,向本站投稿了6篇go语言获取系统盘符的方法,下面小编给大家带来go语言获取系统盘符的方法,希望能帮助到大家!

go语言获取系统盘符的方法

篇1:go语言获取系统盘符的方法

作者:无尽海 字体:[增加 减小] 类型:

涉及golang调用winapi获取系统盘符的技巧。代码如下:

代码如下:

// cs project main.go

package main

import (

“fmt”

. “strconv”

“syscall”

)

func GetLogicalDrives []string {

kernel32 := syscall.MustLoadDLL(“kernel32.dll”)

GetLogicalDrives := kernel32.MustFindProc(“GetLogicalDrives”)

n, _, _ := GetLogicalDrives.Call()

s := FormatInt(int64(n), 2)

var drives_all = []string{“A:”, “B:”, “C:”, “D:”, “E:”, “F:”, “G:”, “H:”, “I:”, “J:”, “K:”, “L:”, “M:”, “N:”, “O:”, “P:”, “Q:”, “R:”, “S:”, “T:”, “U:”, “V:”, “W:”, “X:”, “Y:”, “Z:”}

temp := drives_all[0:len(s)]

var d []string

for i, v := range s {

if v == 49 {

l := len(s) - i - 1

d = append(d, temp[l])

}

}

var drives []string

for i, v := range d {

drives = append(drives[i:], append([]string{v}, drives[:i]...)...)

}

return drives

}

func main() {

fmt.Println(GetLogicalDrives())

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇2:Go语言单链表实现方法

作者:OSC首席键客 字体:[增加 减小] 类型:转载

1. singlechain.go代码如下:

代码如下:

//////////

//单链表 -- 线性表

package singlechain

//定义节点

type Node struct {

Data int

Next *Node

}

/*

* 返回第一个节点

* h 头结点

*/

func GetFirst(h *Node) *Node {

if h.Next == nil {

return nil

}

return h.Next

}

/*

* 返回最后一个节点

* h 头结点

*/

func GetLast(h *Node) *Node {

if h.Next == nil {

return nil

}

i := h

for i.Next != nil {

i = i.Next

if i.Next == nil {

return i

}

}

return nil

}

//取长度

func GetLength(h *Node) int {

var i int = 0

n := h

for n.Next != nil {

i++

n = n.Next

}

return i

}

//插入一个节点

//h: 头结点

//d:要插入的节点

//p:要插入的位置

func Insert(h, d *Node, p int) bool {

if h.Next == nil {

h.Next = d

return true

}

i := 0

n := h

for n.Next != nil {

i++

if i == p {

if n.Next.Next == nil {

n.Next = d

return true

} else {

d.Next = n.Next

n.Next = d.Next

return true

}

}

n = n.Next

if n.Next == nil {

n.Next = d

return true

}

}

return false

}

//取出指定节点

func GetLoc(h *Node, p int) *Node {

if p < 0 || p >GetLength(h) {

return nil

}

var i int = 0

n := h

for n.Next != nil {

i++

n = n.Next

if i == p {

return n

}

}

return nil

}

2. main.go代码如下:

代码如下:

package main

import “fmt”

import “list/singlechain”

func main() {

//初始化一个头结点

var h singlechain.Node

//往链表插入10个元素

for i := 1; i <= 10; i++ {

var d singlechain.Node

d.Data = i

singlechain.Insert(&h, &d, i)

fmt.Println(singlechain.GetLoc(&h, i))

}

fmt.Println(singlechain.GetLength(&h))

fmt.Println(singlechain.GetFirst(&h))

fmt.Println(singlechain.GetLast(&h))

fmt.Println(singlechain.GetLoc(&h, 6))

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇3:Go语言生成随机数的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:

golang生成随机数可以使用math/rand包

代码如下:

package main

import (

“fmt”

“math/rand”

)

func main {

for i:=0; i<10; i++ {

fmt.Println(rand.Intn(100))

}

}

发现这种情况,每次执行的结果一样,不满意

代码如下:

package main

import (

“fmt”

“time”

“math/rand”

)

func main() {

r := rand.New(rand.NewSource(time.Now().UnixNano()))

for i:=0; i<10; i++ {

fmt.Println(r.Intn(100))

}

}

这种方式就可以使用时间种子来获取不同的结果了

希望本文所述对大家的Go语言程序设计有所帮助,

篇4:Go语言实现简单留言板的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:转载

代码如下:

package main

import (

// “fmt”

“io”

“log”

“net/http”

“text/template”

“time”

“database/sql”

“github.com/ziutek/mymysql/godrv”

)

// 留言结构

type Liuyan struct {

Id int

Name string

Content string

Time int

}

// 显示留言时间

func (l Liuyan) ShowTime() string {

t := time.Unix(int64(l.Time), 0)

return t.Format(“-01-02 15:04:05”)

}

func main() {

godrv.Register(“SET NAMES utf8”)

// 连接数据库

db, err := sql.Open(“mymysql”, “tcp:127.0.0.1:3306*go/root/123456”)

if err != nil {

panic(err)

}

defer db.Close()

// 准备模板

tpl, err := template.New(“liuyanbook”).Parse(html)

if err != nil {

panic(err)

}

// 显示留言页面 /

requestList := func(w http.ResponseWriter, req *http.Request) {

// 查询数据

rows, err := db.Query(“select * from liuyan”)

if err != nil {

log.Fatal(err)

}

defer rows.Close()

// 获取数据

lys := []Liuyan{}

for rows.Next() {

ly := Liuyan{}

err := rows.Scan(&ly.Id, &ly.Name, &ly.Content, &ly.Time)

if nil != err {

log.Fatal(err)

}

lys = append(lys, ly)

}

// 显示数据

err = tpl.ExecuteTemplate(w, “list”, lys)

if err != nil {

log.Fatal(err)

}

}

// 留言页面 /liuyan

requestLiuyan := func(w http.ResponseWriter, req *http.Request) {

err := req.ParseForm()

if err != nil{

log.Fatal(err)

}

if “POST” == req.Method {

if len(req.Form[“name”]) < 1 {

io.WriteString(w, “参数错误!\n”)

return

}

if len(req.Form[“content”]) < 1 {

io.WriteString(w, “参数错误!\n”)

return

}

name := template.HTMLEscapeString(req.Form.Get(“name”))

content := template.HTMLEscapeString(req.Form.Get(“content”))

// sql语句

sql, err := db.Prepare(“insert into liuyan(name, content, time) values(?, ?, ?)”)

if err != nil {

log.Fatal(err)

}

defer sql.Close()

// sql参数,并执行

_, err = sql.Exec(name, content, time.Now().Unix())

if err != nil {

log.Fatal(err)

}

// 跳转

w.Header().Add(“Location”, “/”)

w.WriteHeader(302)

// 提示信息

io.WriteString(w, “提交成功!\n”)

return

}

err = tpl.ExecuteTemplate(w, “liuyan”, nil)

if err != nil {

log.Fatal(err)

}

}

http.HandleFunc(“/”, requestList)

http.HandleFunc(“/liuyan”, requestLiuyan)

err = http.ListenAndServe(“:12345”, nil)

if err != nil {

log.Fatal(“ListenAndServe: ”, err)

}

}

// 网页模板

var html string = `{{define “list”}}{{/* 留言列表页面 */}}

给我留言

{{range .}}

{{.Id}}{{.Name}}{{.Content}}{{.ShowTime}}

{{end}}

{{end}}

{{define “liuyan”}}{{/* 发布留言页面 */}}

姓名:

内容:

{{end}}

希望本文所述对大家的Go语言程序设计有所帮助,

篇5:Go语言生成素数的方法

作者:依山带水 字体:[增加 减小] 类型:

这篇文章主要介绍了Go语言生成素数的方法,实例分析了Go语言生成素数的技巧,需要的朋友可以参考下

本文实例讲述了Go语言生成素数的方法,分享给大家供大家参考。具体实现方法如下:

代码如下:

package main

// 生成2, 3, 4, ... 到 channel ‘ch‘中.

func Generate(ch chan<- int) {

for i := 2; ; i++ {

ch <- i // Send ‘i‘ to channel ‘ch‘.

}

}

// 从管道复制值 ‘in‘ 到 channel ‘out‘,

// 移除可整除的数 ‘prime‘.

func Filter(in <-chan int, out chan<- int, prime int) {

for {

i := <-in   // 接收值 ‘in‘.

if i%prime != 0 {

out <- i // 传入 ‘i‘ 到 ‘out‘.

}

}

}

func main {

ch := make(chan int)   // Create a newchannel.

go Generate(ch) // Launch Generate goroutine.

for i := 0; i < 10; i++ {

prime := <-ch

print(prime, “\n”)

ch1 := make(chan int)

go Filter(ch, ch1, prime)

ch = ch1

}

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇6:Go语言使用MySql的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:转载

此代码需要先安装mysql的go语言驱动。

首先安装mysql的go语言驱动:

代码如下:

go get github.com/ziutek/mymysql/godrv

示例代码如下:

代码如下:

package users

import (

“database/sql”

“fmt”

_ “github.com/ziutek/mymysql/godrv”

)

const (

DB_NAME = “mysql_database_name”

DB_USER = “mysql_user”

DB_PASS = “mysql_password”

)

type User struct {

Id     int   `json:“id”`

Name string `json:“name”`

Alias  string `json:“alias”`

}

func OpenDB() *sql.DB {

db, err := sql.Open(“mymysql”, fmt.Sprintf(“%s/%s/%s”, DB_NAME, DB_USER, DB_PASS))

if err != nil {

panic(err)

}

return db

}

func UserById(id int) User {

db := OpenDB()

defer db.Close()

row := db.QueryRow(“SELECT `id`, `name`,`alias` FROM `users` WHERE id=?”, id)

user := new(User)

row.Scan(&user.Id, &user.Name, &user.Alias)

return user

}

希望本文所述对大家的Go语言程序设计有所帮助,

【go语言获取系统盘符的方法】相关文章:

1.Go语言生成随机数的方法

2.Go语言中使用反射的方法

3.go语言通过管道连接两个命令行进程的方法

4.Go语言的Oracle 驱动:gooci8

5.GO语言实现的端口扫描器

6.go语言对文件按照指定块大小进行分割的方法

7.“获取信息的过程与方法”教案

8.系统加密方法分析论文

9.go的短语

10.Windows 7旗舰版系统打印时提示打印数据获取(压缩)

下载word文档
《go语言获取系统盘符的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部