Rust part14

■ このスレッドは過去ログ倉庫に格納されています
2022/02/12(土) 01:24:16.59ID:XYE+Rws6
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

※次スレは原則>>980が立てること

前スレ
Rust part13
https://mevius.5ch.net/test/read.cgi/tech/1636247099/
2022/05/03(火) 18:47:46.49ID:EIDH3Xch
複オジがバカにされて暴れてるw
2022/05/03(火) 19:05:25.07ID:+FrLoUDt
このand_then方式が何故わかりにくくなっているかというと
let a = s.and_then(|s| s.o?.get(2..=2));
先頭のsだけを特別扱いしていることが原因

例えばこのように先頭を無条件に真となるようにすると
let a = Some(true).and_then(|_| s?.o?.get(2..=2));
その後のs?もo?も同じ扱いになり常に一貫した表記となる

上記から無駄な部分を省いてしまうと
let a = (|| s?.o?.get(2..=2))();
結局クロージャのみとなる
つまり最初の部分だけ特別扱いをやめたことで表記が一貫した
2022/05/03(火) 19:50:20.80ID:OPUNSUqX
>>762
それは視野が狭すぎる
クロージャ類の即時実行は他のプログラミング言語でも普通に使われる
特にRustではインライン展開されて付加コスト無し
そのため様々なcrateでクロージャの即時実行が使われている
標準ライブラリ内部では先行してtryブロックが有効となったためそちらへ移行した
つまりクロージャの即時実行で書いておけばtryブロックがstableとなった時に移行しやすいメリットもある
2022/05/03(火) 22:36:42.91ID:IuH2E3f8
複オジがmapとflatMapを理解してないだけだな
2022/05/03(火) 23:10:41.13ID:0DNzmsNq
標準ライブラリ内では今はtryに移行しているけど多用されているな。
激しいのだと"?"が6個も出てくる。

https://doc.rust-lang.org/src/core/iter/adapters/flatten.rs.html#322
> let upper = try { fhi?.checked_add(bhi?)?.checked_add(fixed_size.checked_mul(upper?)?)? };

これもstableでは (|| fhi?.checked_add(bhi?)?.checked_add(fixed_size.checked_mul(upper?)?))(); で動く。
したがってstableではクロージャーを即時実行する形で書き、
いずれtry_blockがstableになったらそのまま置き換えがベストな方法。
2022/05/03(火) 23:19:39.02ID:NT1ErZg0
tryっていつ安定版に入るの?
2022/05/03(火) 23:49:23.79ID:EjxGzJz/
tryはクロージャ代用で困っていないが
GATsとimpl specializationを早く安定化して欲しい
2022/05/04(水) 10:04:54.12ID:BCVMJms8
try blockが解決しようとしてる問題を理解すればIIFEの何が問題なのかも分かる
2022/05/04(水) 19:39:53.08ID:mmwxiGlB
Rustで出来るだけダサいプログラム書いてみて
2022/05/04(水) 20:57:45.43ID:fHWEafFD
>>779
fn main() {
let mut i = 0;
while i < 10 {
print!("{}", i);
i += 1;
}
}
2022/05/04(水) 21:42:20.03ID:uizzY+8f
Rustの練習でFizzBuzzを書いてみたのですがもっと速くできますか?

fn main() {
let mut n = 1;
loop {
if n % 15 == 0 {
println!("FizzBuzz");
} else if n % 5 == 0 {
println!("Buzz");
} else if n % 3 == 0 {
println!("Fizz");
} else {
println!("{n}");
}
n = n + 1;
}
}
2022/05/04(水) 23:33:28.78ID:5IOUV+X2
>>776
型を指定する方法が未解決なのでいつになるかは不明
年単位で先の話になると思っておいたほうがいい
783デフォルトの名無しさん
垢版 |
2022/05/05(木) 00:18:26.00ID:s+BOvh+C
FizzBuzzは単純すぎて実行時の剰余算とその分岐を避けるくらいしか改善できないんじゃないか
あとはマジックナンバーを避けて更にRustっぽく書くとこうかな
const FIZZ: usize = 3;
const BUZZ: usize = 5;
const FIZZ_BUZZ: usize = FIZZ * BUZZ;
fn main() {
(0..FIZZ_BUZZ)
.cycle()
.enumerate()
.skip(1)
.for_each(|(n, i)| match TABLE[i] {
Some(s) => println!("{s}"),
None => println!("{n}"),
})
}

type Table = [Option<&'static str>; FIZZ_BUZZ];
const TABLE: Table = make_table();
const fn make_table() -> Table {
let mut table = [None; FIZZ_BUZZ];
let mut i = 0;
while i < FIZZ_BUZZ {
table[i] = match i {
i if i % FIZZ_BUZZ == 0 => Some("FizzBuzz"),
i if i % BUZZ == 0 => Some("Buzz"),
i if i % FIZZ == 0 => Some("Fizz"),
_ => None,
};
i = i + 1;
}
table
}
2022/05/05(木) 05:24:26.06ID:DUJQpJw8
ダサい例として挙げられていたwhileによるカウントアップが使われているけど
const_forはまだまだ先が長そうね
そのためにはIterator
そのためにはimpl Trait
2022/05/05(木) 08:21:51.44ID:y9k2LxGs
>>781
https://ideone.com/QkAorv
速くはできてないと思うけど
ifじゃなくてmatchを使った例
fn main() {
for n in 1..101 {
match (n % 3, n % 5) {
(0, 0) => println!("fizzbuzz"),
(0, _) => println!("fizz"),
(_, 0) => println!("buzz"),
_ => println!("{}", n),
}
}
for n in 1..101 {
println!("{}", n.fizzbuzz())
}
}
あと下の例はenumとtraitを使ってみた
enumとtraitのほうはrustっぽく使えてるかどうか自信なし
786デフォルトの名無しさん
垢版 |
2022/05/05(木) 09:45:30.02ID:l2X3qjWl
forってかなり高度な構文だよなと改めて思う
constで使えるようになるのはかなり先になりそうだな...
2022/05/05(木) 09:49:51.56ID:MaGUTczU
C++ の constexpr でも for が使えるようになるまでちょっとかかったもんな。
2022/05/05(木) 12:45:23.13ID:2iJgLsAL
在日ちょんこに尻尾振ってついて行って
レイプされたバカ女の数々
https://uploader.cc/s/9d11h2w9wvh4ju43jicl5t80kyyk4buz8anyyinyvh3tpystxk8mmmj9lejo1rer.mp4

殺されりゃ良かったのに
789785
垢版 |
2022/05/05(木) 15:13:48.30ID:ddifXjp/
https://ideone.com/G4kYRi
enumで持つ整数の型を固定しないようにした
最初からこうすべきだった
2022/05/05(木) 17:40:31.65ID:FeY8iOM4
カルビーが12月から全社員を対象にした副業制度を導入。
多様な働き方のさらなる進化を目指す

カルビー「何でもテレワーク」工場視察からゆるい勉強会まで

建設業界の常識を覆す“攻め”の働き方改革【週休3日制】を4月からトライアル導入
残業大幅減でも利益は昨対比2倍に上昇!

労働時間すべて社外勤務OK。トラック業界の“先駆者”が新制度

日野、「副業」許可制度を新設 “経験”広げて本業に生かす

ダイハツが副業容認を本格検討、その狙いと新しい働き方とは?

ダイドーグループ、「副業・副業受け入れ制度」を導入

Afterコロナ時代を生き抜くべく、ダイドードリンコが「自社人材の副業」と
「他社からの副業人材の受入れ」を開始
2022/05/05(木) 18:08:39.19ID:icOcjj+k
ふと思ったんだがそろそろブラウザ上でIDE提供増えないのかなあ
2022/05/05(木) 20:09:56.60ID:JVFKUq6Q
>>789
i32とありジェネリックになりきってないぞ
2022/05/05(木) 20:31:42.14ID:CLlK/Ylr
ジェネリック数値型ガイジ
2022/05/05(木) 21:39:31.34ID:ddifXjp/
>>792
必要に応じて実装してもらえればいいかな?
impl FizzBuzz for f32 {
fn fizzbuzz(&self) -> FizzBuzzResult<&Self> {
match (self % 3.0, self % 5.0) {
(0.0, 0.0) => FizzBuzzResult::FizzBuzz,
(0.0, _) => FizzBuzzResult::Fizz,
(_, 0.0) => FizzBuzzResult::Buzz,
_ => FizzBuzzResult::Num(self),
}
}
}
fn main() {
for n in 1..101 {
println!("{}", (n as f32).fizzbuzz())
}
}
正直言うとfn fizzbuzz<T>(n: T) -> FizzBuzzResult<T>
みたいな関数を書けないかと思って先に試してみたけど
中でリテラル使って計算してるのが祟って書けなかった
2022/05/05(木) 21:51:56.06ID:KLOlIWxl
>>794
実装コードが異なる型は別実装でいい
しかし今回は同じ実装コードだろ
そういう時はジェネリックに書くのがRust
2022/05/05(木) 23:39:39.98ID:k+DVpXA+
>>795
stdだとマクロ使ってるケースが多い気がするが
2022/05/06(金) 00:00:07.68ID:U1cwKpJU
>>796
一般的にジェネリックにするためのトレイト境界となるパーツのトレイトは個別に型列挙してimplする必要がある
そこではマクロが有用
パーツとなるトレイトを利用してプログラミングすれば列挙の必要性がない
2022/05/06(金) 00:18:49.47ID:lqMO+ITd
パターンに定数を使うことは可能です。

fn baz(x : usize) -> usize {
const ZERO : usize = 0;
match x {
ZERO => 1,
_ => 2
}
}

しかしトレイト内の定数で型が確定しない状況ではそれがパターンに使える定数なのかどうかわかりません。
(のでエラーになります。)

trait foo {
const ZERO: Self;
fn bar(&self) -> usize {
match self {
Self::ZERO => 1, // エラーになる
_ => 2
}
}
}

このとき Self がパターンに現れることが出来る型であるという制限を付けることは可能ですか?

(>>794 の定数だけ impl すればメソッド自体は共通化できるかなと思って試みたけどこれをどうにもできなくて困った)
2022/05/06(金) 01:50:09.59ID:cmC85Voz
そういう場合はif使いなさい
2022/05/06(金) 06:31:06.34ID:ALxSds4A
>>798
その問題もTraitの関数でconstを返せないため現状では無理
だからmatchパターンでは使えないがifガードでなら使える
 
>>789のうちimpl FizzBuzzだけ以下に変更

use std::ops::Rem;
impl<T> FizzBuzz for T where T: Copy + From<u8> + PartialEq + Rem<Output=T> {
fn fizzbuzz(&self) -> FizzBuzzResult<&Self> {
let zero = T::from(0);
match (*self % T::from(3), *self % T::from(5)) {
(x, y) if x == zero && y == zero => FizzBuzzResult::FizzBuzz,
(x, _) if x == zero => FizzBuzzResult::Fizz,
(_, y) if y == zero => FizzBuzzResult::Buzz,
_ => FizzBuzzResult::Num(self),
}
}
}

これでu128でもf64でも動く
2022/05/06(金) 11:54:43.12ID:gaqqfXMl
でもそれi8では動かないだろ
2022/05/06(金) 12:16:10.95ID:cmC85Voz
ざんね〜ん
f64はStepを実装していないので(1.0)..=(100.0)できませ〜ん
いっけね!
2022/05/06(金) 12:52:49.36ID:Ew6ghWho
>>802
え?
>>794のas f64方式で動きましたけど
2022/05/06(金) 13:38:51.38ID:mCVU3PbX
impl XXX for T で where にだらだら制約書くやつは変に制約強くなりがちだから実装の共通化が目的ならマクロ使った方が良い
実装の共通化のために継承を使うようなもので、目的に対して不適切な手段を使っているように思う
2022/05/06(金) 14:08:08.87ID:cmC85Voz
パラノイアみたいにジェネリックジェネリック言う割にはそこだけ{integer}なのは気にしないんだ

FizzBuzzなんて>>781でいいんだよ
もっと意味のある仕事をしようぜ
2022/05/06(金) 14:14:00.63ID:xNV5dZfk
ジェネリックにするのも時間の無駄だが
traitにするのがそもそもガイキチ

>>781は無限ビジーループで論外
最低限でも関数の入出力は考えろ
2022/05/06(金) 14:15:08.65ID:gaqqfXMl
マクロ使うしかないんだけど、マクロの部分はエディタのサポートがちょっと弱くなるのが残念だよね
2022/05/06(金) 18:19:49.06ID:lqMO+ITd
FizzBuzz を過剰にジェネリックにする意味はないが、
ここではジェネリック化の手法を色々知るというのがトピックで FizzBuzz はただの例だよ。
809794
垢版 |
2022/05/06(金) 18:53:54.80ID:13OIhPlc
>>797
> トレイト境界となるパーツのトレイトは個別に型列挙してimplする必要がある

もしよかったら具体的にどういうことか教えてちょ
不勉強すぎてまったくついていけない

>>798
> 定数だけ impl すればメソッド自体は共通化できるかな

定数だけimplするとは?

>>800
(´・∀・`)ヘー
勉強になりました
Fromってそうやって使うんやね

>>804
みんながどうやらマクロで解決してるらしいのは流れみて分かったが
具体的にはさっぱり分からんのでツライところ
おまえらって詳しくてスゴイわ
2022/05/06(金) 19:10:43.41ID:lqMO+ITd
>>809
> 定数だけimplするとは?

実際には動作しないけどコードで言えばこんなのを考えてた。
https://ideone.com/vSnAET
2022/05/06(金) 19:18:41.78ID:13OIhPlc
>>810
なるほど
言わんとする意味はバッチリ分かりました
みんな色々考えるんだなw
2022/05/06(金) 19:23:32.30ID:MZFtMNC9
>>809
マクロでtraitを実装するためには以下みたいなマクロを書けば良い
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=15c040ac82d2d655a7b75492c17bc73f

マクロ定義の方法などは rust macro でググるといろいろ情報出てくるかと
2022/05/06(金) 21:26:29.85ID:BAlRZNqr
>>810
RemのOutput型を指定すればちゃんとE0158エラーになるよ
2022/05/06(金) 22:25:22.98ID:13OIhPlc
>>812
> マクロでtraitを実装する

(´・∀・`)ヘー
imple X for Yまるごとマクロの中に来るんやね
Rustのマクロについては調べたこと無かったけど
やっぱやりたいことはできるようになってそうで安心
ありがとうございました
2022/05/06(金) 22:43:10.27ID:BAlRZNqr
ジェネリックにしつつpattern match使いたいなら
(0, 0)じゃなくて(true, true)でmatchすればいいと思う
https://play.rust-lang.org/?edition=2021&gist=c83dbaa7166545941649bb279f2162bd
2022/05/06(金) 23:24:33.89ID:lqMO+ITd
>>815
それいいな。
先にゼロと比較してから true にマッチさせる部分よりもゼロを作るテクニックのほうが面白いと思った。
2022/05/06(金) 23:27:51.66ID:BxCPOws/
>>801
i8で動かない原因はFromを使っているためなのでTryFromを使えばi8でも動く

use std::convert::TryFrom;
use std::ops::Rem;
use num::CheckedAdd;

fn fizzbuzz<T>() -> impl Iterator<Item=FizzBuzzResult<T>>
where T: Copy + PartialEq + CheckedAdd + Rem<Output=T> + TryFrom<usize>,
{
let [zero, one, three, five] = [0, 1, 3, 5]
.map(|n| T::try_from(n).ok().unwrap());
itertools::unfold(zero, move |n|
n.checked_add(&one).map(|new| {
*n = new;
match (new % three, new % five) {
(x, y) if x == zero && y == zero => FizzBuzzResult::FizzBuzz,
(x, _) if x == zero => FizzBuzzResult::Fizz,
(_, y) if y == zero => FizzBuzzResult::Buzz,
_ => FizzBuzzResult::Num(new),
}
})
)
}

fn main() {
for f in fizzbuzz::<i8>() {
println!("{f}");
}
}

ちゃんとi8の上限127で停止
2022/05/07(土) 00:46:09.52ID:xQfG7eKz
やるじゃん
なぜかマクロを嫌うならそれでいいね
2022/05/07(土) 01:43:00.17ID:bR8D+y4k
>>818
すいません
マクロで>>817を実装可能なのですか?
2022/05/07(土) 02:27:17.25ID:xQfG7eKz
どっちがいいかどうかはともかくとして、817が使ったであろうnum-traitsのcrateのCheckedAddもマクロで実装されてるよん
こういうのはマクロになりがち
2022/05/07(土) 03:15:28.92ID:ZCh9Flgq
どちらも正しい
・基本的な性質のTraitは型を列挙してimplする →マクロになる
・それら以外のTraitは基本Traitを組み合わせる →Trait境界の列挙となる
2022/05/07(土) 03:24:48.03ID:xQfG7eKz
>>819
>>817 ではイテレータになってたから全然同じじゃないけど、こういうのを言いたかった
マクロを使うことでTrait境界を要求しない実装ってこっちゃね

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=dfc41224af72ac88ab0e8b716a4d4a64
2022/05/07(土) 03:48:53.73ID:9lVhRlMj
>>822
ところで>>817のイテレータはマクロでできる?
2022/05/07(土) 05:13:50.57ID:dujXhAGl
>>823
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=af4aee4ee627c2163d78714f82976a8f

今日の学び: RangeFromからnext()し続けるとオーバーフローでpanic!する
2022/05/07(土) 08:35:04.90ID:VQro7qgS
現状はジェネリックじゃ実現できない事が多々あるから性能面を重視するならマクロになる
数値系は特に
2022/05/07(土) 10:48:47.74ID:RZMV7d1m
型パズルオナニストきついなぁ
長いコードをレスに直接貼りたがる性癖どうにかならんの?
2022/05/07(土) 11:34:33.57ID:ly+B+DwF
型パズルとか言ってるやつ
トレイト境界を理解できていないのか
2022/05/07(土) 12:04:47.91ID:yYzn+ZfL
>>825
マクロとtraitで性能が変わりうるのってどういう時?
traitだと回りくどい記述になりがちということ?
2022/05/07(土) 12:16:47.05ID:dujXhAGl
>>828
BigIntは参照で渡したいけどプリミティブ数値型は値で渡したい
traitだと値か参照かどっちかにしかできない、とかじゃねーの知らんけど
2022/05/07(土) 13:05:53.65ID:es6B5OyZ
>>827
トレイト境界を理解できないやつがいると思っちゃうところが相当ヤバいんですけど
さすオナ
2022/05/07(土) 14:47:11.23ID:b69ExIFZ
>>829
そういうときは Cow を使うもんじゃねーの
しらんけど
2022/05/07(土) 16:45:29.23ID:6gIZ13sW
>>828
const
2022/05/07(土) 16:47:29.20ID:6gIZ13sW
マクロとトレイトじゃなく
マクロとジェネリックの比較
2022/05/07(土) 17:58:20.41ID:gG9SW2bz
>>826
Rustに限った話じゃないけど、playground系で貼らないのは自己顕示欲の率直なあらわれだと思う
2022/05/07(土) 18:06:27.34ID:O43ZQkJC
辿れなくなる (サービスが終わったり障害が起こる) 可能性もあるから短いものはなるべく直接貼るようにしてる。
大抵は収まる大きさにならないけど。
5ch 自体が見れない場合はしょうがないんだが、話題に付随するコードが見れないときはだいぶんイラッとするぞ。
2022/05/07(土) 18:29:03.69ID:dujXhAGl
https://play.rust-lang.org/が落ちてる場合はhttps://play.integer32.com/でもできる
Rust固有の機能が要らなければideone.com等のサービスも無数にある
837835
垢版 |
2022/05/07(土) 18:32:31.81ID:O43ZQkJC
>>836
すでに投稿されてるものを読む側の話なんだが……。
2022/05/07(土) 18:55:21.90ID:Dd8HOak9
俺も貼れるなら直貼りするわ
いちいち見に行くのも面倒だろうし
そもそも自己顕示欲ないなら貼らないしw
2022/05/07(土) 19:11:36.15ID:6AzGHNNA
>>835
Githubより5chを信頼してるんだなwww
さすオナ
840835
垢版 |
2022/05/07(土) 19:12:51.63ID:O43ZQkJC
>>839
話題が見れないときよりも話題は見れるのにコードが見れないほうがイラッとするという話なんやが。
2022/05/07(土) 19:25:31.02ID:RYRWOUip
ちゃんとコンパイルとrustfmt通したもの貼りたいからplayground使う
スマホからも確認できて便利だよ
2022/05/07(土) 19:59:43.62ID:f6x3u/9i
勝手にイラついてろ
843835
垢版 |
2022/05/07(土) 20:14:55.20ID:O43ZQkJC
>>842
うん。 勝手にいらついてるよ。
でも俺は誰かをいらつかせないためになるべくレス内にコードを書くって話。
2022/05/07(土) 21:14:52.07ID:/yyMGWQT
独りよがりじゃない直貼りは別にいいと思うよ
>>780>>781くらいなら全く気にならない
>>785もまあ可

ってアウトなの一人だけじゃん
2022/05/08(日) 00:42:10.94ID:Q6fkz0I8
5chに貼られてインデントもないコードは読みづらいし、結局コピペして整形しなおすことになるんだから、最初からplaygroundとかを使って貼れよ
もちろんちゃんとコンパイルが通って実行可能な状態でな。
言及もせずにcrateやunstable機能使われてると、なかなか実行確認できずに面倒だからな

それが閲覧者のことを考えてる、ってもんだ
サービスダウンが心配なら、複数のサービスに貼り付けてくれればいいぞ、まあそこまではいらんけど
2022/05/08(日) 00:49:23.57ID:xTuvHOnl
直貼り辞めてくれない?
いらつくから
2022/05/08(日) 00:51:23.20ID:Q6fkz0I8
たしかにインデントもないウンコな直貼りは約1名だけか
2022/05/08(日) 01:34:10.66ID:uCxNUubj
ウェブブラウザだとインデント消えるのか
playground使った方がいいな
2022/05/08(日) 01:36:52.75ID:02uNKuEf
>>847
妄想?
インデントが無いコードをこのスレで見たことないんだが
2022/05/08(日) 01:47:03.57ID:aBGW8DHe
連続した半角スペースがちゃんとインデントとして表示されるのは一部の専ブラとか使ったときだけ
通常のウェブブラウザではHTMLとして処理されて消える
2022/05/08(日) 01:50:38.18ID:FQSY2mn1
>>850
ところが>>847は、一人だけインデントがない、との主張だからそのケースとは違う
2022/05/08(日) 02:08:11.23ID:aBGW8DHe
主張だなんて大げさな

ウンコが約1名いる
そのウンコはインデントしない
そのウンコは直貼りする

それだけの話だろ
2022/05/08(日) 02:15:49.76ID:0+ernfNx
スレの最初から見たけど全てのコードがインデントされてるな
1名だけインデントしていないとか言い出す人は何らかの精神病なんだろうけど
2022/05/08(日) 02:52:18.44ID:aBGW8DHe
二度手間だから最初からPlaygroundに貼りませんか?って話なのに
ウンコが何人いるかなんてどうでもいい話ばかり気にするのね
2022/05/08(日) 03:49:22.98ID:dj1cRgnm
面白そうだから次から直貼りする
2022/05/08(日) 03:50:49.83ID:zz/v69Kq
頑なにプレグラ使わないのはなんで?
2022/05/08(日) 04:00:12.11ID:yk1Ip/5C
いちいち見に行くの面倒だからここでいいんじゃね
でも使いたい人を責めることはしないよ
2022/05/08(日) 04:53:51.34ID:PeeMdZgO
>>846
>>842
2022/05/08(日) 07:15:54.25ID:slXg99Fw
どこの世界でも同じだが
特定の意見や特定の方針を他人に押し付ける人やイラつく人は嫌われる
2022/05/08(日) 07:38:34.92ID:yAkpoBe0
ブラウザにでっち上げた言語を無駄に抱き合わせることは、押し付けじゃないの?
2022/05/08(日) 07:39:03.28ID:yAkpoBe0
ブラウザごと干し上げられそうだけどねw
2022/05/08(日) 09:09:22.14ID:DesCjmqL
ウンコード直貼りと自演擁護はいつもの複製おじさんだから
適当な所で切り上げないと時間の無駄だよ
2022/05/08(日) 09:37:03.03ID:Nx2GTU7H
>>862
> 自演擁護
これまたでかいブーメランだな、久々に見たわ
で、インデントされてない1名ってどれ?w
2022/05/08(日) 09:52:04.06ID:1JnUqrf/
うんこ等の汚い単語を使うのはいつものキチガイだから無視するのがよいかと
2022/05/08(日) 10:27:16.57ID:AkhbKZj7
>>863
知らんがなw
直貼りでインデントされてるコードなんて見当たらない
2022/05/08(日) 10:40:24.72ID:VSrRGkQQ
せめて技術的な話でやりあってくれめんすw
煽りオンリーは時間の無駄でつよ
2022/05/08(日) 11:27:48.48ID:nUQgQyI4
貼られたソースコードはクリック一つで自分の環境やplayground等に移せるようにしている
逆にplayground等に貼られたソースコードは自動引用表示してる
どちらもほぼ同じ表示となるため両派とも自由に好みのスタイルで貼ってくれて構わない
2022/05/08(日) 14:12:20.46ID:Neo9r1Gu
インデント付きで表示される5chブラウザが存在するの!?
2022/05/08(日) 14:46:10.02ID:4M3U681r
最近はjaneでも連続半角スペースが表示されるようになってる
かなり短いコードじゃないと見にくいが
2022/05/08(日) 15:16:56.45ID:4TKM/7Dc
>>868
chmate: https://i.imgur.com/LPDyEpr.jpg
Chrome: https://i.imgur.com/JUzhSQn.jpg
てか、どんなブラウザで見てんのよ
2022/05/08(日) 16:00:44.57ID:IoDfoov/
>>870
ウンコ・オブ・ウンコを撮るあたりはさすがオナニスト
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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