我當前的代碼旨在為加密錢包密鑰生成 Sha-256 哈希,然后將其列印給我,以便我確認它是否正常作業。這是我的代碼。順便說一句,我是初學者,我還有很多東西要學。
import Foundation
import SwiftUI
struct dataManager {
let characterArray = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","f"]
@State private var privKey = "0x"
init() {
for _ in 1...64 {
privKey = characterArray[Int(arc4random_uniform(16))]
print(privKey)
}
}
}
問題是init函式似乎從未被呼叫過,所以我沒有得到任何列印到控制臺的東西。我嘗試除以零以查看是否有崩潰,但沒有崩潰,這讓我相信它沒有被呼叫或類似的東西。
編輯:我應該補充一點,如果我嘗試在 init 之外使用 for 回圈,我只會收到“預期宣告”錯誤。我做了一些研究,我認為 init 是我應該在這種情況下使用的。
任何幫助將不勝感激!
uj5u.com熱心網友回復:
正如評論中提到的,@State僅在 SwiftUI 中使用View。
還有一些其他的小錯誤,比如"e"在你的陣列中遺漏了。
這是您的代碼的作業版本,盡可能少地修改:
struct DataManager {
let characterArray = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
var privKey = "0x"
init() {
for _ in 1...64 {
privKey = characterArray[Int(arc4random_uniform(16))]
print(privKey)
}
}
}
let manager = DataManager()
print(manager.privKey)
請注意,您可以進一步重構它。這是另一個本質上有點 Swift 的迭代:
struct DataManager {
let characterArray = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
var privKey = "0x"
init() {
privKey = (1...64).map { _ in characterArray.randomElement()! }.joined()
}
}
或者:
struct DataManager {
var privKey = "0x" (1...64).map { _ in ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"].randomElement()! }.joined()
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459937.html
