次世代言語13 Go Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:55:53.03ID:JBCtYT+G
スレタイ以外の言語もok

前スレ
次世代言語12 Go Rust Swift Kotlin TypeScript
http://mevius.5ch.net/test/read.cgi/tech/1530664695/
2018/08/28(火) 16:07:02.24ID:0jKV2vdB
C言語
-Wbool-compare -Werror
2018/08/28(火) 17:40:19.38ID:qNToseDl
>>145>>147
既存文法に依存してるので別の文法になる可能性もあるのに意味不明
コミュニケーション苦労しそう
2018/08/28(火) 17:57:19.80ID:YFDGQHp2
非建設的でコミュ障な回答ありがとうございました
非建設的な馬鹿は死ななけば治らないのですね
2018/08/28(火) 18:12:51.68ID:E+vXp7sG
>>147
それはバカみたいではないだろう。
checkedがboolとして評価したときに真なのと、checkedがtrueと同値なのは全く別問題じゃん。
if(pHoo)と書くのは正しくない、と言われるならわかるが。

処理系依存の質問ならそう書いてくれ。
2018/08/28(火) 18:23:45.26ID:h1lwFjom
言語依存だな
2018/08/28(火) 18:38:49.96ID:k5A54yFx
昔のCはbool型がない
整数やポインタを比較するだけなので問題なかった

自称モダン言語がなぜか古いCの文法を真似するから問題になる
2018/08/28(火) 18:53:57.34ID:h1lwFjom
if 文の所で計算結果が bool 型以外になる場合にどう扱うかの問題だな。
Cの場合は元々そういう型がなくて0か0以外かでしか見ない。
Javaだとboolean以外になったらコンパイルエラー。
2018/08/28(火) 19:06:58.35ID:EkHmS2W9
>>147
エアプだけどlintでできるんじゃないの?
2018/08/28(火) 19:33:05.17ID:1DJlmxtv
>>154
cppでも、falseな変数をインクリメントしたらtrueになったり、
0以外の何を代入しても1になったり、処理系依存だとはいえ無茶苦茶だしな。
2018/08/28(火) 19:42:21.73ID:1DJlmxtv
ってかchecked != trueをコンパイルエラーにするなら、右辺がtrueであるかを評価してからコンパイルエラーにすべきだろうし
(checked != (true || false))

#define PRODUCTIONMODE true
if((status.foo && param.bar)!=PRODUCTIONMODE)

みたいな式が書けなくなるし、あんまいい事無いだろ。
列挙の網羅性を文句言われるのとはちょっと違うレベルで不便では?
158デフォルトの名無しさん
垢版 |
2018/08/28(火) 19:44:01.42ID:C1AWmFJx
ま、Cは元々その辺が甘く作ってある言語で移植性のあるアセンブラのように使うためのものだからそれはそれで良いと思う。
それが嫌なら別の言語使うか自分で言語作ればいい。仮に自作する技術力がなくても仕様公開しとけば誰かが作ってくれるだろう。
2018/08/28(火) 19:52:51.98ID:DQiw1Rb4
こういうくだらない話のが盛り上がるんだね。
160デフォルトの名無しさん
垢版 |
2018/08/28(火) 19:53:52.03ID:hby/BPp+
低学歴知恵遅れ以外ないなら意図は理解できる

これはアリ
 if (checkd) {}
 if (!checkd) {}
これはペケ
 if (checkd == true) {}
 if (checkd != false) {}

コレはあり
 checked = true;
 checked = false;

checked自体にもともとブーリアン入ってるから
ブーリアンを比較してるようにみえる

オレには分かる
このスレの低学歴
そらなこのスレの低学歴知恵遅れには意図が分からない

つまり低学歴知恵遅れしかいないこのスレできくのが間違い
161デフォルトの名無しさん
垢版 |
2018/08/28(火) 19:56:06.20ID:wrKBjmHK
半角カナボーイがなにをいうか
162デフォルトの名無しさん
垢版 |
2018/08/28(火) 19:57:15.43ID:C1AWmFJx
そらな?
163デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:02:06.98ID:hby/BPp+
checkd自体に真偽値入ってんのに
真偽値で比較するとか意味不明

分かる
オレだったら分かる

著しく知能が低いこのスレのヤツラには分からない
ぜんぜん質問と関係ないアホな回答をする
2018/08/28(火) 20:08:19.98ID:1DJlmxtv
>>163
真偽が入っているとは限らない。
真偽として評価される値は入っているかもしれない。
真と偽と、真として評価されることと偽として評価されることはそれぞれ違うよ。
165デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:09:12.05ID:hby/BPp+
== true
!= false
とかいてるのにアホやわコイツ
166デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:10:28.78ID:hby/BPp+
if (conditon)
trueとかfalseとか
conditonそのものだからな
2018/08/28(火) 20:18:07.88ID:7f0I5EGI
ここで、むしろ「== true」を付けないとコンパイルエラーになる言語の入場です

https://ideone.com/TQIPIO

https://ideone.com/bvDJx1
2018/08/28(火) 20:35:31.11ID:2e1yGKgM
無理やりnull許容型にした理由は?
2018/08/28(火) 20:51:44.96ID:7f0I5EGI
>>168

let fromSettingFile = "true"
let checked = Bool(fromSettingFile)
print( type(of:checked) )

--output-----------
Optional<Bool>
2018/08/28(火) 21:16:31.72ID:et++zaIG
半角さん現るw
2018/08/28(火) 21:48:28.78ID:NpcISEiM
C#とかKotlinのnullable booleanは true か false との比較がいる
2018/08/28(火) 21:50:40.71ID:edw0fiqP
checkedがNaNの時等価じゃないだろ
173デフォルトの名無しさん
垢版 |
2018/08/28(火) 21:59:42.32ID:hby/BPp+
ブーリアンをそんな頭悪い使い方するのがそもそも間違い
もはやそれはブーリアンじゃない

ブーリアンにnullいれたりするような頭悪いヤツが書いたコードは
えてしてundefinedになってるような更に上をいくスーパーウンコブーリアンがまじってる
174デフォルトの名無しさん
垢版 |
2018/08/28(火) 22:05:20.31ID:hby/BPp+
true、false、null
とかただの3ステートだからな

コレはもうブーリアンじゃない
1、2、3でも入れとけばいい
2018/08/28(火) 22:07:30.20ID:fXAZZcRu
>>174
ファジー論理学とか。よく知らんけど。
176デフォルトの名無しさん
垢版 |
2018/08/28(火) 22:10:45.66ID:hby/BPp+
そんなもん表現するなら
0~1の浮動小数点入れるか
0~255の数値いれたりして
度合いを正規化する

3つだけとか貧弱すぎ
超意味ない
2018/08/28(火) 22:13:15.70ID:NpcISEiM
できる限り nullable を回避すべきなのはそうだけど、APIの結果(json)とかLEFT JOINの結果をデシリアライズする際に nullable を使うことはよくある
2018/08/28(火) 22:18:01.32ID:gML/vais
>>174
nullとundefinedがまた更に別
2018/08/28(火) 22:20:54.04ID:Z8Vrq7+b
javascriptのクソ仕様を他に伝搬させるな
2018/08/28(火) 22:42:29.81ID:vFWqxH+c
>>147
それをアレするのはリンダってゆうんやで
2018/08/28(火) 22:44:40.54ID:vFWqxH+c
>>159
ワナビーの法則やな
誰でも口出しできる駐輪場の話題が一番盛り上がって恋仲を深めるってやつ
2018/08/28(火) 22:46:37.27ID:vFWqxH+c
3つの状態を持つのはSQLで三値論理演算ゆうんやで
無学なおまいら何も知らないNOOBYよ
183デフォルトの名無しさん
垢版 |
2018/08/28(火) 22:49:45.78ID:hby/BPp+
DBの設計がまともにできない知恵遅れが設計すると
そういうウンコDBができるとアホが自慢してる
184デフォルトの名無しさん
垢版 |
2018/08/28(火) 22:54:34.25ID:hby/BPp+
知恵遅れが設計したDBはSQLの抽出条件もnvlだらけになる
2018/08/28(火) 22:57:41.01ID:ixRLZ+D8
いやいや、ディビニストの基本やぞ・・・
三値論理演算できて初めて半人前のお赤飯や
愚か者
186デフォルトの名無しさん
垢版 |
2018/08/28(火) 23:00:33.92ID:hby/BPp+
nullとから文字は違うと
みなわかってることを
みなにドヤ顔で話してるバカとそっくりなヤツが
このスレにもいる

そいつ知能が著しく低いことは
みなしってるがだれもそいつにはいわない

オマエはな、そういう自覚はもっといやほうがいい
187デフォルトの名無しさん
垢版 |
2018/08/28(火) 23:01:53.05ID:hby/BPp+
DBでもnull可能なブーリアン入れる知恵遅れなんかまずいない
2018/08/28(火) 23:03:02.22ID:ixRLZ+D8
クソバカ半角がいじw
ナールを正しく扱えて初めて半人前だのクラッカーボレーだッッッ(ジョジョッ)
189デフォルトの名無しさん
垢版 |
2018/08/28(火) 23:35:15.67ID:hby/BPp+
マーケティングリサーチなんかの調査票で
はい、いいえという選択肢がない項目でも
DKやOMITが付与されることがある
クロス集計するときそれがカテゴリになったり除外されることがある

知恵遅れにそういうのを放置してやらせると
そのまんま見た目でそういう変数ですらブーリアンにしてしまう

このスレにはその程度の知能のヤツがウヨウヨいる
2018/08/28(火) 23:41:51.99ID:g4U2T+jR
最初の条件は誰もbooleanとは言ってないのにねぇ>コレはもうブーリアンじゃない
191デフォルトの名無しさん
垢版 |
2018/08/28(火) 23:46:10.87ID:hby/BPp+
明らかにブーリアン
コレをブーリアンのことをいってないと考えれるなら
オツムに軽度の障害がある

145 名前:デフォルトの名無しさん[sage] 投稿日:2018年08月28日(火) 13時32分07秒52 [昼] ID:YFDGQHp2 [1/3]
if checked == true 〜
if checked != true 〜
みたいな馬鹿馬鹿しい判定がコンパイルエラーになる言語ってない?

147 名前:デフォルトの名無しさん[sage] 投稿日:2018年08月28日(火) 16時02分37秒80 [夕方] ID:YFDGQHp2 [2/3]
伝わってないようだけど
checked == true や checked != true みたいなバカなコーディングを
コンパイルエラーにしてくれる言語はないのか? 

150 名前:デフォルトの名無しさん[sage] 投稿日:2018年08月28日(火) 17時57分19秒80 [夕方] ID:YFDGQHp2 [3/3]
非建設的でコミュ障な回答ありがとうございました
非建設的な馬鹿は死ななけば治らないのですね
192デフォルトの名無しさん
垢版 |
2018/08/28(火) 23:49:14.00ID:hby/BPp+
オツムに軽度の障害があるから
D:YFDGQHp2 ← コイツの質問の意図も読みとれないワケ

で、このスレの池沼たちは質問と無関係なトンチンカンなアホなレスばっかりしてるワケ

わかった?
2018/08/28(火) 23:53:33.19ID:rofHFqPM
ていうかこれ質問が悪いよね
どっちにも解釈できる
2018/08/29(水) 00:39:46.87ID:WBp+gbgf
型無し糞言語が能無し糞ガイジを産む
負のwhile (true) ループ
2018/08/29(水) 00:40:46.22ID:IJ3hSlk/
ローコンテキスト文化なところでハイコンテキストな質問をする方が悪いとしか
2018/08/29(水) 01:17:12.49ID:pYcA3LnZ
コミュ症だから意図がよみとれないんじゃないか
2018/08/29(水) 01:48:53.74ID:0CwGsWHn
スレ的にJuliaはどう?
1.0なったのに全然話題になってないな
2018/08/29(水) 01:58:33.25ID:mxENW9mj
結局 if err != nil 無くそうとしてるじゃねーか
今までの主張はなんだったんだ
https://go.googlesource.com/proposal/+/master/design/go2draft.md
2018/08/29(水) 02:17:33.77ID:Md5DkR0O
Goのエラーハンドリングは先進的だとかジェネリックなんか必要ないとか言ってドヤ顔してた人は今どんな気持ち?w
2018/08/29(水) 06:25:28.09ID:FkuJoTq5
Google様の仰られる言葉は全て正しいんやで
2018/08/29(水) 07:30:40.82ID:4JuKKSSB
>>199
先進的だとか必要ない、ではなくてどちらも弊害が多い、の間違いだろ
2018/08/29(水) 07:40:17.12ID:GqBN8ZFM
これでgoも一般のクソ言語の仲間入りだね。
203デフォルトの名無しさん
垢版 |
2018/08/29(水) 07:55:44.86ID:skfmkunk
エラーハンドリングとジェネリクスは弊害か多い??
エラーハンドリングなんかしちゃだめだって主張??
2018/08/29(水) 08:26:21.14ID:azUIVUCr
誰かgo2の解説頼む。
2018/08/29(水) 08:50:24.08ID:DW0Jb9Fq
conditionはexpressionだろ
checkedも、checked==trueもexpressionじゃん。

はい、いいえ以外の選択肢はあるよ。無回答だ。
無回答という値を作ってもいいが、普通はnullだろ。
そのためのnullだ。集計してもnullに食われる「ようになってる」。
2018/08/29(水) 08:54:19.80ID:Md5DkR0O
NOと言えない島猿
2018/08/29(水) 09:53:38.09ID:3Y4hBlHJ
> if checked == true 〜
> if checked != true 〜

これなぁ
プルリクでこれきたらなおさせてたが最近は認めてる

バカはバカなりに特定の値で分岐するときのイディオムとしてifと==を組み合わせて使うって覚えてるんだよ
intであろうがboolであろうが同じ
そう思うとこれはこれで一貫性ある
実際これが読みにくいって感じることはないし
コンパイラは黙って最適化するし

なので許すことにした
自分では書かないが
2018/08/29(水) 10:34:17.12ID:FFtlPXOG
Swift大勝利じゃないか
C++もgoも後を追ってくる
2018/08/29(水) 10:41:05.27ID:f5noujOQ
winでswift使わせてよー
2018/08/29(水) 11:47:51.64ID:DBASjTr8
nullだのエラー処理だの言ってるのはモナド
モナドは型を書かないと意味わからないし
その型はジェネリクスのようなものがないと宣言できない
2018/08/29(水) 12:02:48.71ID:u5ADcZZb
>>208
そのSwiftはRustの後を追ってる
やっぱりRustなんだよなぁ
2018/08/29(水) 12:17:51.45ID:DW0Jb9Fq
falsyなものが無い言語ならどっちでも良いとは思うけど、どっちにも言い分はあると思う。
APIの戻り値なんかが変わったときに
「何もしないで同じ動きをして欲しい。自動テスト転ばないのが唯一の正義」派と
「明確に対応したい。転ばない自動テストが間違ってる。そもそもちゃんとアサーションしろ、本当にtrueでもfalseでもない状態はありえないか?メモリ化けとかどーすんの?」派の違いだと思うわ。

結局falsyな言語だと「本当にfalse」と「falseではないがfalseとみなされる」を、混同したい場合も区別したい場合もあるんだし。
2018/08/29(水) 13:43:29.30ID:DBASjTr8
Perlでは数値と数値の比較には==を、文字列と文字列の比較にはeqという演算子を使う
数値と文字列の比較はない
数値なら0だけがfalse
それ以外にfalsyな値は存在しない
2018/08/29(水) 16:28:08.12ID:A/ggV7aH
>>207
俺もこれだわ
二重否定以外は大抵許してる

3値論理の必要性は分かるけど、開発メンテしていく上では邪魔なので基本使わせない
2018/08/29(水) 16:32:06.97ID:7N1N66pK
Swiftなんかあったの?
2018/08/30(木) 00:00:20.35ID:UmVQrNZ9
> if checked == true

この流儀?を許したら
if checked == true
if checked != true
if checked == false
if checked != false
の四兄弟がセットで押し寄せてくる
さらに
if (n > 10) == true
if (enabled & visible) = true
if checked == true && enabled == true && visible == true
なども体をねじ込んでくる
さあ楽しくなってくるじゃないか
2018/08/30(木) 00:08:34.03ID:K2XYaSpY
ワナビーの凡人法則

糞どうでもいい低レベルな議論しかできないヤツが
糞どうでもいい話に飛びついて
ここぞとばかりに高説ぶる


死ねば
ええんちゃうか?ωωω
2018/08/30(木) 00:14:26.32ID:mi8K02wj
オブジェクト指向でいうとboolに==メソッドがあるのが悪い
もしObjectクラスの==をboolが継承しているなら、Objectクラスが存在するのが悪い
219デフォルトの名無しさん
垢版 |
2018/08/30(木) 00:47:04.12ID:DrSr47TU
オメーガ?
2018/08/30(木) 00:48:13.84ID:K2XYaSpY
だからさー!君たちワナビーの法則やっちゅうねんバカなのか!
2018/08/30(木) 00:55:49.05ID:H/5/FX9R
>>218
boolに比較演算子がないと型パラメータとして渡す時に要らん制限が増えるだろ
2018/08/30(木) 01:13:21.94ID:7OC3inua
>>218
論理演算子に同値が定義されていないのも色々と書きにくそう
notとandとorで書けるけど
223デフォルトの名無しさん
垢版 |
2018/08/30(木) 01:21:47.57ID:/0YXnEsV
2項比較演算子がダメということじゃないからな

  aho == true
  true == aho

 のブーリアンのリテラルが入ってる2項等価演算子はダメ

  aho == baka

 の2項等価演算子はアリ

わかった?
224デフォルトの名無しさん
垢版 |
2018/08/30(木) 01:24:38.44ID:/0YXnEsV
つまり、trueとfalseは
代入以外に使えないようにすればいい
2018/08/30(木) 03:28:31.53ID:IxfOs83u
>>213
空リストとか空文字列ってfalse扱いじゃなかったっけ?
2018/08/30(木) 03:31:50.70ID:fTlUE3DU
コミュニケーションじゃなくてプログラミングスタイルで繋がりたいんだろうが
実はそっちのほうがもっと無理
2018/08/30(木) 04:38:17.14ID:mi8K02wj
語学じゃなくて心理学とか脳科学とかでシンギュラリティしたいんだろ
そっちのほうが無理
2018/08/30(木) 07:11:50.68ID:K2XYaSpY
ワイノ話を聞かないとは無能揃いだね?
2018/08/30(木) 07:34:59.92ID:wxlIjpoe
半角の人はなぜ駄目かを全く読んでないのな。
2018/08/30(木) 07:39:56.35ID:K2XYaSpY
てゅかさ。深夜に書き込んでるってことはおまいら無職だろ
無職風情がワイ様無視してワナビー法則でイキってるとかマジゴミだろωωω
2018/08/30(木) 08:11:26.07ID:ff0XXJ3a
無駄だからそんな書き方しなくていいってだけで、それ自体何か害があるわけじゃないから
文法上禁止してしまう理由はないと思うがなぁ。
レビューで指摘するのはそれがコードスメルだからってだけだろう。
2018/08/30(木) 09:09:42.55ID:hUyiY/SJ
a == trueが禁止されたのでa ^ !trueに置換しておきました
2018/08/30(木) 09:55:24.67ID:K2XYaSpY
マジこのワナビーの法則の話いつまで続くんや
夏厨死ねよ
2018/08/30(木) 11:01:42.71ID:e8DSDd9g
>>225
文字列なら "" と "0" がfalse
数値なら0だけがfalse
235デフォルトの名無しさん
垢版 |
2018/08/30(木) 11:59:46.41ID:A5Nytyjy
perlには '0 but true' という、数値として 0 と比較すると一致するが if でそのまま使うと true 扱いになる特殊な値があったりする。
2018/08/30(木) 12:14:56.63ID:6I1bUcuW
次世代を担うに相応しい真偽評価戦略を語るべし
2018/08/30(木) 13:15:05.68ID:io9LYUoZ
次世代はif文が消えjsのthen的なものになります
2018/08/30(木) 13:47:18.38ID:6sRyznT+
うえー
2018/08/30(木) 13:49:00.74ID:e8DSDd9g
数値の偽は0
文字列の偽は "" "0"
オブジェクトの偽は null "" "0" その他
階層が深いほど偽が多い法則
2018/08/30(木) 13:57:19.48ID:k9/abrGo
次世代言語にはifもforもない
2018/08/30(木) 14:29:05.96ID:dTt5OSNq
アスペはこういうところに拘ってしまって先に進めないんだよね
2018/08/30(木) 14:47:28.76ID:e8DSDd9g
飯炊き三年握り八年
2018/08/30(木) 18:20:12.51ID:fWBwT80E
ちゃんと読んでないけど
boolなら
if checked / if !checked
でいいやん
2018/08/30(木) 18:57:30.25ID:JpHgwHVB
数値なりリストなりを暗黙に真偽値比較せずに
明確にすればいいだけじゃないの?
2018/08/30(木) 19:30:44.87ID:7mcJbcKo
直和な幽霊型でCheck|Uncheckを型に持たせて管理すればいいよ
246デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:15:21.94ID:+O/rJ+xn
if で boolean 型以外を許さず、更に boolen 型の値の比較も許さない言語を作れば解決。
2018/08/30(木) 21:51:23.27ID:ff0XXJ3a
というかそれが普通なんだけどな。
型がないB言語の特徴を受け継いだCがなまじヒットしてしまったせいで
後続の言語もその悪習を真似るようになってしまった。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況