HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
1016
ナナン氏連想配列を作ってみました。1解決


ナナン氏

リンク

2021/10/16(Sat) 11:38:46|NO.94172

実用には向かないです。バグありまくりかも...。


#include "hspinet.as" #module hashMap keyT,valT,arr #modinit int keyType,int valueType dim keyT dim valT dimtype arr,valueType keyT=keyType valT=valueType return #modcfunc local cast str _val,int _T dim T if _T==0{ T=keyT }else{ T=valT } dimtype res,T switch T case 4: res=int(_val) swbreak case 3: res=double(_val) swbreak case 2: res=str(_val) swbreak swend return res #modcfunc local Mget str _key dim index sdim md5 dimtype key,keyT key=cast(thismod,_key,0) varmd5@ md5,key,strlen(_key) index=int("$"+strmid(md5,0,4))/*indexが大きいと何故か配列に入らない*/ return arr(index) #define global ctype Mget(%1,%2) Mget@hashMap(%1,str(%2)) #modfunc local Mset str _key,str _val dim index sdim md5 dimtype key,keyT dimtype val,valT key=cast(thismod,_key,0) val=cast(thismod,_val,1) varmd5@ md5,key,strlen(_key) index=int("$"+strmid(md5,0,4))/*indexが大きいと何故か配列に入らない*/ arr(index)=val return #define global Mset(%1,%2,%3) Mset@hashMap %1,str(%2),str(%3) #global /*ここからサンプル*/ newmod m,hashMap,vartype("str")/*キーのタイプ*/,vartype("double")/*値のタイプ*/ Mset m,"a"/*キー*/,0.5/*値*/ Mset m,"b",5 mes Mget(m,"a"/*キー*/)*Mget(m,"b")



この記事に返信する


ナナン氏

リンク

2021/10/16(Sat) 11:59:25|NO.94173

衝突の例:

Mset m,"a",5 Mset m,"226616",15 mes Mget(m,"a") mes Mget(m,"226616")



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.94172への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2021(c) All rights reserved.