- PR -

変数名などで state と status はどう使い分ければ良い?

投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-10-17 01:16
会議室をどこにするか迷いましたが、ひっそりとここにします。

昔から悩んでいる些細なことなのですが、変数名などを付ける際に state にするか status にするかで悩みます。同じ意味なのか、それともやはり使い分けないといけないものなのかが分かりません。なお、英単語の意味と言うよりも、コンピューター業界としての使い方が知りたいです。

以下、私が漠然と思っていることを書きます。
(ただ、これに囚われずにみなさまの直感をお寄せいただけると興味深いかなとも思います。)

・status はなんとなく result という意味合いを持っているのかな?とも思うのですが、そういうもんなんでしょうか?
・関数の返り値を受ける変数は status とすることが多いような。( int status = func(); )
・メンバー変数(フィールド)の名前は state のほうが多いような。
・error state とはあまり言わず、error status と言うことが多いような。
やじゅ
常連さん
会議室デビュー日: 2008/07/15
投稿数: 28
お住まい・勤務地: 静岡市
投稿日時: 2008-10-17 04:13
state  具体的な個別の状況
status 表している状態

statusとstateの違いがいまいちよくわかりません
http://aol.okwave.jp/qa3909263.html
http://www.alc.co.jp/eng/vocab/etm-cl/etm_cl036.html

[ メッセージ編集済み 編集者: やじゅ 編集日時 2008-10-17 04:23 ]
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2008-10-17 08:49
objectです。

私が使っている英英辞書から、要約すると、
state :condition, position
status:position
ですね。
#stateの方が抽象性が高い?

私なら、
state :condition
status:position
として使い分けるかな?

私の個人的な印象ですが、
error state :errorによる限定が、stateとなじまない?
error status :特定のエラー(error に於ける position)をあらわす?

あくまで、私の個人的な意見(印象)です。

[ メッセージ編集済み 編集者: object 編集日時 2008-10-17 08:52 ]
タコツボ
常連さん
会議室デビュー日: 2004/01/20
投稿数: 22
お住まい・勤務地: 京都・大阪
投稿日時: 2008-10-17 08:54
status : 状態を表す情報の入れ物(変数)
state : 上記statusに入りうる状態の1つ

という認識をしています。

> status はなんとなく result という意味合いを持っているのかな?とも思うのですが、そういうもんなんでしょうか?

可能な限り「処理結果」であるresultと「その時の状態」は区別すべきと思います。


> 関数の返り値を受ける変数は status とすることが多いような。( int status = func(); )

関数が、何かの処理を行いその結果を返すのであればresult、
現在の状態(state)を取得(getState())したり、処理を行った後の状態(state)を返すのであれば、statusで受けるのがよいと思います。


> error state とはあまり言わず、error status と言うことが多いような。

何のエラーであるかということは error state(特定のエラーを表すエラーコード等)、
例外情報等に含まれるエラー情報保持用の入れ物は error status と思います。

なので、変数として用意するのは status、そこへ格納する値として(場合によってはenumで定義した)state、というように使っています。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-10-17 10:59
引用:

やじゅさんの書き込み (2008-10-17 04:13) より:
state  具体的な個別の状況
status 表している状態


引用:

objectさんの書き込み (2008-10-17 08:49) より:
私が使っている英英辞書から、要約すると、
state :condition, position
status:position
ですね。
#stateの方が抽象性が高い?

私なら、
state :condition
status:position
として使い分けるかな?


引用:

タコツボさんの書き込み (2008-10-17 08:54) より:
status : 状態を表す情報の入れ物(変数)
state : 上記statusに入りうる状態の1つ

という認識をしています。


ありがとうございます。
なるほど、state と status は、意味が違うというよりも、対象が違うというか文法的なものが違うという感じかな、と理解しました。英語で考えたら使い分けは必要だけど、日本語で考えるのだったらそれほど気にしなくても良いのかな?というようなことを今のところ考えています。自分でコーディングする分には、status は使わずに state だけで済ませたほうが面倒がなくていいかな、と思っています。
すなわち、
コード:
class Hoge {
    int state;

    int getState() {
        return state;
    }
}


でいいかな、と。ここで int status; にしようか int getStatus() にしようかと悩むのは、英語で悩んでいることであり、コーディングとは関係ないことかな、と思いました。
逃げもあるのかもしれませんが。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-10-17 11:07
ちなみに、
引用:

やじゅさんの書き込み (2008-10-17 04:13) より:

statusとstateの違いがいまいちよくわかりません
http://aol.okwave.jp/qa3909263.html
http://www.alc.co.jp/eng/vocab/etm-cl/etm_cl036.html


の OKWave のほうの、ANo.3(mydoughboy 氏)が書かれた、
引用:

つまり「〜の状態 (status of...)」を status とし、「〜である状態 (state of being...)」を state とします。

これらを見分けるには、頭に “state of being...” または後ろに「〜である状態」 を付けて意味が通る場合は、state を選びます。「busy である状態 (state of being busy)」、「suspended である状態 (state of being suspended)」、「shock にある状態 (state of being in shock)」などです。「CPU の状態 (status of CPU)」とは言えますが、「CPU である状態 (state of being CPU)」とは言えません。


の説明が私としては理解しやすかったです。
逆に、これにより、これは英語の問題である、と私は解釈したしだいです。
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2008-10-17 11:51
objectです。

>unibonさん

引用されているサイトを確認した訳ではありませんが、
>「CPU である状態 (state of being CPU)」とは言えません。
は、少し教条的ではないでしょうか?

恐らく、
「state of being CPU」=「CPUとして存在する状態」=「CPUの存在状態」
という意味だと思います。

例を挙げるなら、
「ピンが曲がった状態で取り付けられているCPU」
でしょうか?
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2008-10-22 20:03
変数名にstateは使ったことないですね

普段ステータスという言葉を使う関係で
statusを利用した方が
見た人が直感的に理解しやすいからです

stateを使うのはStateパターンを利用するときくらいかな

スキルアップ/キャリアアップ(JOB@IT)