我想知道是否可以在 C 中的打字稿中創建等效的記錄型別并在運行時添加屬性。
我的目標是重新創建這個:
const familyData: string[] = ["paul", "em", "matthias", "kevin"];
const myFamily: Record<string, boolean> = {};
familyData.forEach(d => myFamily[d] = true);
為什么我想在 C 中做這樣的事情?好吧,如果我能做到這一點,我是否能夠直接知道 kevin 是否存在,或者 gregory 是否不通過 joust 這樣做:
const name: string = "kevin"; // it can be anything
console.log(familyData["kevin"]); // expected true after the init / undefined if it doesn't exist or if the object isn't init
對我來說,這真的可以節省計算時間。
請注意,稍后我將使用它不僅將名稱鏈接到真實值,還會鏈接到一些資料。
但是現在在 C 中,我一直在處理所有陣列,直到找到這些人的名字,因此所需的時間將取決于每次陣列的大小并想要獲取一些資料。
有人有解決方案可以在 C 中創建這樣的東西嗎?。
非常感謝。
uj5u.com熱心網友回復:
為了讓我的評論成為答案:
您正在尋找一種可以將字串映射到值的結構。通常,您可以使用以字串為鍵的哈希表來做到這一點。
由于您僅映射到布林值(true,false),并且我認為您的用例在沒有第三個狀態(不在表中的人,在表中的人具有假值,在表中的人具有真值)的情況下,哈希集也可以;不存在于集合中可能被解釋為錯誤值。
正如 Craig Estey 在評論中所提到的,這個特殊情況也可以由紅黑樹或嘗試服務。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/341114.html
上一篇:使用打字稿泛型檢查物件是否為空
