精靈寶可夢go捉精靈的入口在哪里 手機steam怎么進csgo的商店?
手機steam怎么進csgo的商店?csgo商店入口在人物的背包里。其操作步驟如下:1.打開steam的客戶端,在steam里面選擇社區市場,2.然后選擇你的游戲角色所在的服務器,3.再選擇進入csg
手機steam怎么進csgo的商店?
csgo商店入口在人物的背包里。
其操作步驟如下:
1.打開steam的客戶端,在steam里面選擇社區市場,
2.然后選擇你的游戲角色所在的服務器,
3.再選擇進入csgo市場,
4.在菜單欄里選擇你想要的裝備的種類,比如想要武器,就選擇武器和鑰匙兩項,
5.在跳轉的商品頁面里面選擇并購想要的武器箱子,
6.再去鑰匙的商品頁面購買對應武器箱子的鑰匙,
7.再登錄游戲,在人物背包里面,就能開箱子了。
手機下滑快捷欄沒有了怎么弄出來?
重新啟動通知欄,有些手機可以打開或關閉通知欄。比如go桌面就有這個功能。您可以嘗試使用go桌面重新打開通知欄,看看是否成功。
另外可以試著恢復出廠設置,進入安卓手機的設置頁面,找到恢復出廠設置的入口,然后恢復手機的出廠設置。一旦確認此操作,您的手機設置和自裝的應用程序和數據將被刪除,系統將恢復到原始狀態,以解決狀態欄丟失的問題。
有沒有免費的短網址工具?
我是@程序員小助手, 本文從技術角度,對短網址進行深度挖掘。
前言網上已經有產品,用著還不錯。可是,作為程序員,從零開始造輪子,開發一個屬于自己的短網址服務器,這想法amazing!
通過本文,讀者可明白短網址的技術原理,以及通過Go語言實現一個短網址服務。
簡明教程短網址為什么存在?
微博等產品的興起,活躍了網上的社交圈內大多數用戶。但是微博一般有140字限制,如果不轉發,單純評論文字,再加上一段網址,極有可能超過限制而被截斷。
短網址應運而生,用較短的一個字符串,替換較長的一個字符串,從觀感上講,效果要友好的多。
從技術原理上說,短網址是一個hash表,用于映射兩個字符串的對應關系。
使用鍵,找到對應的值,重定向進行訪問,就完成了整個流程。
短網址算法短網址的一般結構,比如新浪的 SwuTjn,其中后端的一段6位字符串,就是用來唯一標記一條記錄的ID。那么,使用什么算法,可以生成一條無重復的ID呢?
使用通用的做法,使用 0-9 A-Z a-z 一共62個字符,我們看使用hash鍵位數分別有多少種排列組合情況。
1位:pow(62,1) 62 種
2位:pow(62,2) 3844 種
3位:pow(62,3) 238328 種
4位:pow(62,4) 14776336 種
5位:pow(62,5) 916132832 種
6位:pow(62,6) 56800235584 種
一般情況下,6個字符,就足夠使用了,共計568億種可能。
還有一種情況是,用原網址字符串的MD5值,共計32位,然后通過切分為4段,分別按位與運算,并裁剪到30位。間隔5位選出該位的字符作為該段索引,共有6位。但是這種做法也有幾率發生重復,也不直觀。
因此本文使用第一種算法生成鍵ID。
工具準備分析短網址的特性,包含以下項目:
唯一性:鍵需要全局唯一時效性:鍵需要有過期時間目標網址唯一,如果重復,則自動返回既有的鍵。考慮到上述情形,我們使用redis存儲這些對應關系。使用Gin框架作為路由和控制器,提供對外的API訪問。
核心函數計算機中常見的2進制,8進制,10進制,16進制,我們此處需要使用62個字符,循環表示一個整數,那么可稱之為62進制。
下面使用go語言實現這個函數,用于將任意的整數(uint64)轉換為(0-9A-Za-z)的字符串。
需要注意,基礎的方法,就是循環取余數,根據進制字典,索引相應的字符,然后將各個余數拼接出來,就是結果。
這個計算方法,與2進制,8進制,原理是相同的。
由于字典比較長,有62個鍵值對,我們僅列出一部分。
上述函數的轉換結果,類似于 6489264001 75ai0p
功能規劃下面是對于系統路由,創建短鏈接,以及使用短鏈接訪問目標網址的方法。
1 - 規劃路由
路由比較簡單,一共2個,一個POST方法,生成短鏈接;一個是GET方法,訪問短鏈接。
代碼如下:
2 - 引入redis并初始化
為了方便演示,我們使用redis存儲鍵值,并設置expire時間。我們使用go-redis提供的接口操作redis數據庫。
下面是全局的
對象生成,和初始化函數。
這樣做的好處是,我們全局都可以使用變量 rdb 調用方法操作redis鍵值。
3 - 實現POST路由方法:add
本函數用于接收form表單數據,生成一個全局唯一的 hash ,作為鍵,存入redis,設置值和過期時間。
代碼如下:
本段我們使用了一個 getCounter 函數,這是設置在redis內的鍵,將其每次請求創建的時候,自增 1,可保證無重復。根據這個計數器,我們調用 helper的 DecToAny 方法,將其轉化為62進制的字符串,作為全局唯一的 hash 值。
下圖是 getCounter 的定義:
特別注意的是,helper包,就是我們在“核心函數”部分定義的函數。在主函數體內引用。
4 - 實現GET方法:visit
本函數主要用于使用上一節接口生成的短鏈接,進行訪問,并自動重定向到目標網址。
代碼如下:
對于不存在的短鏈接,或者redis獲取失敗,返回錯誤信息。
如果存在,使用 301 StatusMovedPermanently 狀態碼重定向到目標地址。
測試我們使用curl工具,測試上述兩個接口。
首先,使用POST表單提交數據:
curl -s -X POST -d target -d expire600 :9090/
上述方法,我們提交了兩個參數,命中路由之后,會訪問上一節第3條的add方法,并生成一個短鏈接網址。返回JSON格式數據如下:
{message:ok,short_url::9090/75ai0r,status:1}
其中,short_url 就是短網址。
接著,我們在使用curl訪問這個鏈接,看是否發生重定向。截圖如下:
可以看到,執行了301重定向,并給出了目標網址,與我們上述表單想要創建的地址一致。
最后,故障測試。訪問一個不存在的hash,看是否排除異常信息。截圖如下:
可以看到,執行了錯誤返回信息。
結語以上我們使用GO語言框架Gin實現了兩個路由,并使用redis管理短鏈接。核心函數使用helper包管理,經過測試,實現了短網址的功能。
以上代碼在本地測試通過,也可部署到線上服務器對外開發端口,提供服務,效果是一樣的。
希望通過這個流程,使大家對于短網址的知識,有一些了解,并能根據自身的編程能力,創作出更好用的短網址服務。
Happy coding :-)
【本文由 @程序員小助手 發布,持續分享編程與程序員成長相關的內容,歡迎關注】