「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@22) [中] [解決]
@22■ (#60) “HASH@空”で値を取得できない - LSI (2008-09-22 21:09) /低 未処理
【症状】空文字列をキーにすると、ハッシュから値を取得できません。
【再現方法】
#ここから
HASHとはハッシュ。

HASH@空は「あいうえお」。
HASH@空を表示。#何も表示されない

「----」を表示。

HASHを表示。#値は書き込まれている
#ここまで

【要望】上記の書き方でも値を取得できるように修正をお願いします。
【バージョン】ver.1.5071

(#61) 空は定数ですから - 粗茶 (2008-09-23 10:25) /低 未処理
たしか、ハッシュには「 」を付けなければ
ならなかったと思います。

空という定数(変数)ではなく、
「空」という文字列ならばOKです。

どうしてもHASH@空としたいのならば
改善要望ですね。

#ここから
HASHとはハッシュ。

HASH@「空」は「あいうえお」。
HASH@「空」を表示。#何も表示されない

「----」を表示。

HASHを表示。#値は書き込まれている
#ここまで

(#62) RE:空は定数ですから - LSI (2008-09-23 15:56) /低 未処理
To: 粗茶さん

> 空という定数(変数)ではなく、
> 「空」という文字列ならばOKです。

> どうしてもHASH@空としたいのならば
> 改善要望ですね。

キーに指定するのは“「空」という文字列”ではなく、
“空文字列(長さ0の文字列)”のつもりだったのですが。
症状の項目にも、

> > 【症状】空文字列をキーにすると、ハッシュから値を取得できません。

と書いたはずです。意図がうまく伝わらなかったでしょうか。


> たしか、ハッシュには「 」を付けなければ
> ならなかったと思います。

下記のプログラムでテストしてみましたが、症状は改善されませんでした。

#ここから
HASHとはハッシュ。

HASH@「」は「あいうえお」。
HASH@「」を表示。

「----」を表示。

HASHを表示。
#ここまで

(#65) RE:RE:空は定数ですから - 粗茶 (2008-09-24 12:52) /低 未処理
LSI様

プログラミング初心者の浅はかさで、
ハッシュのキーに空を指定するという状況が
考えられなかったため、「空文字列」というのが
「空」という文字列の意味にしか理解できませんでした。
申し訳ありませんでした。

(#80) 不具合確認 - しらたま (2008-09-29 18:43) /低 修正中
内容把握しました。
空文字列でも取得できるように修正します。

(#83) 空で取得したい理由 - はやしま (2008-09-30 01:47) /低 修正中
個人的には、空で取得したい理由が思いつかないのですが、どんな時に空で取得したいかについての情報が何かあれば教えていただけると有難いです。

(#85) テスト確認しました - クジラ飛行机 (2008-09-30 02:11) /中 確認待ち
動作しているのを確認しました。
しらたまさんの修正。

>LSIさん、はやしまさんへの回答お願いします

(#104) RE:空で取得したい理由 - LSI (2008-10-02 21:52) /中 確認待ち
To: はやしまさん

> 個人的には、空で取得したい理由が思いつかないのですが、

「値の設定はできるのに、取得できない」という仕様は中途半端です。
「値の設定ができるのなら、取得もできるようにしてほしい」と考えるのは
自然だと思っていたのですが、間違っているでしょうか。

「キーに空を指定できないように制限する」という解決方法もありますが、
制限したところで特にうれしいことはないと思います。


> どんな時に空で取得したいかについての情報が何かあれば教えていただけると有難いです。

具体例を挙げればよろしいでしょうか。

公式マニュアルのハッシュの説明(http://nadesi.com/doc/kouza/08-1-hash.htm)に
納豆のアンケート結果を集計する例が載っています。

この例に以下の条件を追加した場合を考えます。
・アンケート結果に“回答なし”があっても良い。ただし、“回答なし”は空文字列で表現する。
・“回答なし”も含めて集計したい。

仮にハッシュのキーに空を指定できない場合、
・集計する前に、アンケート結果に空が含まれないように別の文字列に変換する。
・集計する際に、回答が空かどうかで場合分けする。
など、ユーザー側で何らかの対策が必要になります。

(#108) ありがとうございます。よく理解できました。 - はやしま (2008-10-03 15:07) /中 未処理
LSIさん、こんにちは。
例示いただいた内容を見て、空で取得したい理由について、よく理解できました。
ありがとうございます。
お手数おかけしました。

(#109) ステータス - はやしま (2008-10-03 15:08) /中 解決
ステータスが未処理になってしまいました。
解決、でいいのかな?
不適切ならまた変更お願いします。

(#115) RE:不具合確認 - LSI (2008-10-04 14:56) /中 解決
To: しらたまさん

> 内容把握しました。
> 空文字列でも取得できるように修正します。 

ありがとうございます。ver.1.508で修正を確認しました。

(#60)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能