關於golangkeys的信息

本文目錄一覽:

golang 根據keys獲取的key列表批量刪除

package main

import (

“fmt”

“github.com/garyburd/redigo/redis”

)

func main() {

conn, err := redis.Dial(“tcp”, “a href=”EUBtznjR1PHndnWnzrj03PW01P1fL” target=”_blank” class=”baidu-highlight”127.0.0.1/a:6379″)

if err != nil {

panic(err)

}

defer conn.Close()

conn.Do(“SET”, “app1”, “test1”)

conn.Do(“SET”, “app2”, “test2”)

val, err := redis.Strings(conn.Do(“KEYS”, “app*”))

fmt.Println(val, err)

conn.Send(“MULTI”)

for i, _ := range val {

conn.Send(“DEL”, val[i])

}

fmt.Println(conn.Do(“EXEC”))

}

Go是Google開發的一種編譯型,可平行化,並具有垃圾回收功能的編程語言。

羅布·派克(Rob Pike),羅伯特·格瑞史莫(Robert Griesemer),及肯·湯普遜於2007年9月開始設計Go語言,稍後Ian Lance Taylor, Russ Cox加入項目中。

Go語言是基於Inferno操作系統所開發的。[4]Go語言於2009年11月正式宣布推出,成為開放源代碼項目,並在Linux及Mac OS X平台上進行了實現,後追加Windows系統下的實現。

golang 解析ini哪個包好

我以前用過一個,你看著合適可以拿去用。

特點是只讀,而且不適合太大的文件(因為要全部載入到內存里)。

package ini

import (

“bufio”

“io”

“os”

“strconv”

“strings”

)

type section map[string]string

type File struct {

sections map[string]section

}

func NewFile(path string) (*File, error) {

f, err := os.Open(path)

if err != nil {

return nil, err

}

defer f.Close()

return New(f), nil

}

func New(f io.Reader) *File {

m := make(map[string]section)

r := bufio.NewReader(f)

sec := “”

var line string

var err error

for err == nil {

line, err = r.ReadString(‘\n’)

line = strings.TrimSpace(line)

if line == “” || line[0] == ‘;’ {

continue

}

if line[0] == ‘[‘ line[len(line)-1] == ‘]’ {

sec = line[1 : len(line)-1]

_, ok := m[sec]

if !ok {

m[sec] = make(section)

}

continue

}

if sec == “” {

continue

}

pair := strings.SplitN(line, “=”, 2)

if len(pair) != 2 {

continue

}

key := strings.TrimSpace(pair[0])

val := strings.TrimSpace(pair[1])

if key == “” || val == “” {

continue

}

m[sec][key] = val

}

return File{m}

}

func (p *File) Sections() []string {

s := make([]string, len(p.sections))

i := 0

for k, _ := range p.sections {

s[i] = k

i++

}

return s

}

func (p *File) HasSection(section string) bool {

_, ok := p.sections[section]

return ok

}

func (p *File) Keys(sec string) []string {

m, ok := p.sections[sec]

if !ok {

return nil

}

keys := make([]string, len(m))

i := 0

for key, _ := range m {

keys[i] = key

i++

}

return keys

}

func (p *File) GetString(sec, key, def string) string {

m, ok := p.sections[sec]

if !ok {

return def

}

v, ok := m[key]

if !ok {

return def

}

return v

}

func (p *File) GetInt(sec, key string, def int) int {

m, ok := p.sections[sec]

if !ok {

return def

}

v, ok := m[key]

if !ok {

return def

}

i, err := strconv.ParseInt(v, 10, 32)

if err != nil {

return def

}

return int(i)

}

func (p *File) GetUint(sec, key string, def uint) uint {

m, ok := p.sections[sec]

if !ok {

return def

}

v, ok := m[key]

if !ok {

return def

}

i, err := strconv.ParseUint(v, 10, 32)

if err != nil {

return def

}

return uint(i)

}

func (p *File) GetBool(sec, key string, def bool) bool {

m, ok := p.sections[sec]

if !ok {

return def

}

v, ok := m[key]

if !ok {

return def

}

return v != “0”

}

golang 實現bitmap

type bitmap struct {

    keys []byte

    len int

}

func NewBitMap() *bitmap {

    return bitmap{keys:make([]byte, 0), len:0}

}

func (b *bitmap)has(v int) bool {

    k := v /8

   kv :=byte(v %8)

    if k len(b.keys) { //todo not exist

          return false

      }

    if b.keys[k](1kv) != 0 {

        return true

    }

    return false

}

func (b *bitmap)set(v int) {

    k := v /8

    kv :=byte(v %8)

    for b.len = k {

        b.keys =append(b.keys, 0)

        b.len++

    }

    b.keys[k] =b.keys[k] | (1 kv)

}

func (b *bitmap)length()int {

    return b.len

}

func (b *bitmap)print() {

    for _, v :=range b.keys {

        fmt.Printf(“%08b\n”, v)

    }

}

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

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

相關推薦

  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • Linux查看系統信息

    一、CPU信息 Linux系統下,查看CPU的信息最常用的命令是lscpu。該命令可以顯示CPU架構、核心數量、線程數、緩存大小、CPU頻率等信息。例如: lscpu 該命令會輸出…

    編程 2025-04-24
  • 軟考 信息安全工程師

    軟考 信息安全工程師是一項技能型國家級資格認證考試,主要測試考生在信息安全領域的理論知識和實踐技能,是證明個人信息安全能力的重要證書。本文將從多個方面對軟考 信息安全工程師做詳細的…

    編程 2025-04-23

發表回復

登錄後才能評論