X



Ruby 初心者スレッド Part 67

0001デフォルトの名無しさん (ワッチョイ b72c-yePO)
垢版 |
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0075デフォルトの名無しさん (ワッチョイ cbb3-8Wj8)
垢版 |
2021/02/16(火) 21:32:31.57ID:fxt1OOtg0
>>72
rubyやり始めたところで、eqlがイコールって気づかなかった。短い方のイコールって良いですね!ありがとうございます。
>>73
自分もイーキューエルだて頭の中で読んでた
>>74
なんでやーーー!!
0076デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
垢版 |
2021/02/16(火) 22:13:45.11ID:fxt1OOtg0
すみません、質問です
hash生成時に、
str={"key1" = "val1"}
ではエラーになる理由を教えてください。
0078デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
垢版 |
2021/02/16(火) 22:28:16.05ID:fxt1OOtg0
>>77
すみません、携帯からで全角と半角を間違えてしまいました。半角として見てくださいm(_ _)m
007977 (ワッチョイ 162c-FDiY)
垢版 |
2021/02/16(火) 23:01:49.84ID:F9q4wvox0
p h_1 = { "a" => "b" } #=> {"a"=>"b"}

p h_2 = { "あ": "い" } #=> {:あ=>"い"}
p h_3 = { one: 1, "two": "2" } #=> {:one=>1, :two=>"2"}

新しめの書き方では、2, 3 みたいに書ける

: を使うと、文字列のキーがシンボルになる
"two": が、:two になる

one: はシンボルのまま
0080デフォルトの名無しさん (ワッチョイ cbb3-pcjv)
垢版 |
2021/02/16(火) 23:13:47.99ID:fxt1OOtg0
書いていただいた方法でないと生成できないのですね
丁寧な回答ありがとうございました
0082デフォルトの名無しさん (ワッチョイ bf2d-A6sh)
垢版 |
2021/02/20(土) 02:27:26.66ID:SWSWE4Ss0
AtCoderの解答見てると、rubyで巨大配列を扱うような時に激遅になりがちな気がする
配列アクセスの遅さなのかループの遅さなのかわからんが
0084デフォルトの名無しさん (ワントンキン MMa7-bvMg)
垢版 |
2021/02/23(火) 21:47:53.55ID:QIohwxjcM
irbにおいて、
def test; p test; end
とだけ打ち込みました。
すると、Enumerable.methods.grep(/test/) => [:test]
が得られます。
何故、testメソッドが勝手にEnumerableのメソッドになるのか教えていただけないでしょうか。
環境は
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
です。
008887 (ワッチョイ cf2c-QclQ)
垢版 |
2021/02/24(水) 02:26:45.21ID:YN61hHjA0
p test が文法エラーになるのでは?

test という識別子が存在しないから
0089デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
垢版 |
2021/02/24(水) 07:33:53.13ID:UUqFv7Fhp
0084です。

def test; p test; end
ではなく、
def test; p “test”; end
でした。
大変申し訳ありませんでした。
ほかのメソッドでも同じような動きを確認しています。今日は立て込んでしまっているので、追って別のメソッドの例も提示します。
0090デフォルトの名無しさん (ササクッテロラ Sp07-GD1z)
垢版 |
2021/02/24(水) 07:38:08.91ID:UUqFv7Fhp
>>0085さん、確認ありがとうございます。

私は初心者なので、以下の認識で正しいか、何か例外があるのか不安でお尋ねしました。認識は正しかったようですので、もう少し調べてみます。

>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
0095デフォルトの名無しさん (ワントンキン MM9f-bvMg)
垢版 |
2021/02/24(水) 20:33:38.12ID:p2P+ZlS6M
90です。
パソコンを再起動して、.irb_historyをtouchで初期化したのち、
以下を実行しても同じ結果でした。

irb(main):001:0> def test; p "test"; end
=> :test
irb(main):002:0> Enumerable.methods.grep(/test/)
=> [:test]
irb(main):010:0> exit
$ rbenv -v
rbenv 1.1.2
$ rbenv versions
system
* 2.7.1 (set by /Users/someone/.rbenv/version)

別のメソッドも作ってみましたが、結果は同じでした。
irb(main):001:1* def mul(a,b)
irb(main):002:1* a*b
irb(main):003:0> end
=> :mul
irb(main):004:0> Enumerable.methods.grep(/mul/)
=> [:mul]
irb(main):006:0> exit
$ irb
irb(main):001:0> Enumerable.methods.grep(/mul/)
=> []
0096デフォルトの名無しさん (ワントンキン MM9f-bvMg)
垢版 |
2021/02/24(水) 20:38:46.87ID:p2P+ZlS6M
90です。
92さんがおっしゃる通り、環境を作り直すこととします。
私の疑問を受けて、再現性について試していただいた皆様、
ご協力ありがとうございました。
0097デフォルトの名無しさん (オッペケ Sr07-VXi+)
垢版 |
2021/02/24(水) 20:41:24.99ID:MS8741jMr
irb(とpry)でトップレベルで定義するとなんかおかしい

$ cat test.rb
def hoge; end
puts 'public: %p' % [methods.grep(/hoge/)]
puts 'private: %p' % [private_methods.grep(/hoge/)]

$ ruby -v test.rb
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
public: []
private: [:hoge]

$ irb
irb(main):001:0> load("test.rb")
public: []
private: [:hoge]
=> true
irb(main):002:0> def fuga;end
=> :fuga
irb(main):003:0> puts 'public: %p' % [methods.grep(/fuga/)]
public: [:fuga]
=> nil
irb(main):004:0> puts 'private: %p' % [private_methods.grep(/fuga/)]
private: []
=> nil
0099デフォルトの名無しさん (ワッチョイ de2c-tEpZ)
垢版 |
2021/02/27(土) 23:10:50.88ID:xGn+rZN00
WEB+DB vol.121

Ruby 3 特集、30 ページ分
0100デフォルトの名無しさん (ワッチョイ 692c-3kAG)
垢版 |
2021/03/13(土) 14:19:53.90ID:33EHGK5P0
Ruby on Rails 6 の本を書いている、2人の新刊

Go言語 ハンズオン、掌田津耶乃、2021/3/6
Elixir実践ガイド、黒田努、2021/2/5

Ruby からGoか、Elixirか、どっちへ進むべきか?
mruby, Rust もあるけど
0107デフォルトの名無しさん (オッペケ Sr85-azCS)
垢版 |
2021/03/25(木) 16:55:46.31ID:LuSagST9r
プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
0110デフォルトの名無しさん (ワッチョイ 15bb-giyE)
垢版 |
2021/04/02(金) 01:45:05.99ID:6d4XTvSa0
rubyでExcelへデータを出力しようとしているんですが、
どうしてもできないことがあり質問します。

ruby -v 3.0.0p0

rubyでExcelのデータを検索するときはFindを使うと思うのですが、
日付項目(シリアル値)を検索するときはどうすればいいのでしょうか。
以下をやってみましたが、検索できませんでした。

find('3/30') ・・・Excelの表示を指定
find('4321') ・・・シリアル値を指定
0115デフォルトの名無しさん (ワッチョイ 7b35-mU/W)
垢版 |
2021/04/09(金) 09:17:30.32ID:+qPfXmCt0
>>17
on ruby rails
と出力されると思いきや、ruby “on ¥n rails”だって。
なんでだ?
Here Documentの仕様ってどうなってんの?
0119デフォルトの名無しさん (ワッチョイ 4e9f-m7N9)
垢版 |
2021/04/09(金) 22:01:43.18ID:pm4fGgmv0
Loggerで出力する内容を奪い取って、他のメソッド呼び出しにするってどう言う実装したらいいですか?

例えば全てをTest::any::log(msg)を内部的に呼び出して終わるみたいなLoggerを作るにはどうしたらいいですか?

Logger.new(STDERR)だと全て標準エラーに出力ですが、これを全てTest::any::log(msg)の呼び出しで標準エラーには何も出さないloggerを作りたいのです
0120デフォルトの名無しさん (ワッチョイ 6f2c-ORmy)
垢版 |
2021/04/10(土) 02:35:21.72ID:OA/XTa6K0
C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb では、
インスタンス変数に、標準エラーを代入してる

@fileutils_output ||= $stderr
@fileutils_output = $stderr

漏れは、それを真似て、
DryRun の時だけ、noop: true, verbose: true を付けて、
標準出力から標準エラーに切り替えるような、モジュールを作っている

module MyFileUtils
@fileutils_output = $stdout

extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end

module DryRun
include MyFileUtils
@fileutils_output = $stderr

extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end

MyFileUtils.f( 1, 2, a: 8, b: 9 )
MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
0121120 (ワッチョイ 6f2c-ORmy)
垢版 |
2021/04/10(土) 06:15:13.31ID:OA/XTa6K0
Ruby 逆引きハンドブックには、こう書いてある

Logger.new の引数には、ログファイルパスか、
write, close が定義された、IO などのオブジェクトを指定する
0122120 (ワッチョイ 6f2c-ORmy)
垢版 |
2021/04/10(土) 06:29:33.47ID:OA/XTa6K0
Ruby 逆引きハンドブックには、メソッドオブジェクトも載ってる

def f_a( ) :a end
def f_b( ) :b end

def doit( command )
m = method( command )
m.call
end

def doit_2( command )
__send__ command
end

p doit( :f_a ) #=> :a
p doit_2( :f_b ) #=> :b
0123デフォルトの名無しさん (ワッチョイ e284-mJkV)
垢版 |
2021/04/14(水) 15:02:16.96ID:/0Vt4vuj0
gem installって個別のユーザー環境のみに反映することってできますか?
インストールしたらそのPCを使ってる全ユーザーに反映されないようにしたいです
どうしたらいいですか?
0124デフォルトの名無しさん (ワッチョイ a201-vZv9)
垢版 |
2021/04/14(水) 15:47:13.93ID:0xQQ9slV0
1. 環境変数のGEM_HOMEを指定する
2. --install-dirを指定してインストール
3. --user-installを指定してインストール
4. rbenvを使う

どれでもいける
とりあえずgem help installでヘルプを見るといい
0126デフォルトの名無しさん (ワッチョイ 4652-rqav)
垢版 |
2021/04/23(金) 12:36:53.84ID:j9CkA04K0
{"status"=>0, "data"=>[{"ask"=>"5370001", "bid"=>"5370000", "high"=>"5634576", "last"=>"5371160", "low"=>"5243350", "symbol"=>"BTC", "timestamp"=>"2021-04-23T03:22:36.028Z", "volume"=>"854.3707"}], "responsetime"=>"2021-04-23T03:22:37.031Z"}

このハッシュ?から5370000の値を取り出したいのですが上手くいきません。助けてください
0128デフォルトの名無しさん (ワッチョイ b206-rqav)
垢版 |
2021/04/23(金) 20:21:10.93ID:v3P9E6mR0
>>127
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
0130デフォルトの名無しさん (ワッチョイ b206-rqav)
垢版 |
2021/04/23(金) 21:26:36.95ID:v3P9E6mR0
>>129
ヒントを元にそれぞれブラケットで囲ったら行けました。ありがとうございました
0132デフォルトの名無しさん (ワッチョイ b206-rqav)
垢版 |
2021/04/24(土) 06:25:40.53ID:+DYpagDZ0
>>131
大変申し訳ありません。digについて理解しました。重ねてありがとうございました。
0133デフォルトの名無しさん (ワッチョイ 4652-KcJX)
垢版 |
2021/04/24(土) 15:27:17.38ID:vVXlCGEI0
度々申し訳ないのですが
{"status"=>0, "data"=>[{"amount"=>"0", "available"=>"0", "conversionRate"=>"1", "symbol"=>"JPY"}, {"amount"=>"0", "available"=>"0", "conversionRate"=>"5377836", "symbol"=>"BTC"}], "responsetime"=>"2021-04-24T06:14:41.169Z"}
ここから5377836を出力する場合も理解さえできればdigでいけるのですか?

今のコード
r_hash = JSON.parse(response.body)
puts r_hash["data"][1]["conversionRate"]
# =>"5377836"
できれば覚えたてのこれ使いたい↓
puts response_hash = dig("data",ここわからない,"conversionRate")
0134デフォルトの名無しさん (ワッチョイ 7d2d-Im0W)
垢版 |
2021/04/24(土) 16:46:14.63ID:j3qP/sr70
ブラケットで書くのと同じだよ
r_hash["data"][1]["conversionRate"]
r_hash.dig("data", 1, "conversionRate")
0142デフォルトの名無しさん (ワッチョイ b206-rqav)
垢版 |
2021/04/25(日) 15:44:12.74ID:EAdTvuiP0
>>140
pp知りませんでした。ありがとうございます。かなり頭の中の世界が変わりました。
プロゲートはいまいちだったのでユーデミーの教材漁ってたのですがもう一度プロゲートやり直してみます
0145デフォルトの名無しさん
垢版 |
2021/04/25(日) 17:29:21.56
Excelのsheet1に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1  https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/
2行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://co-trip.jp/article/191673/https://hitosara.com/ch_478603/https://kyo-soku.com/2020/04/03/salon-de-muge/
3行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://www.fruitmoti-shoutikudou.jp/https://sweetsguide.jp/product/90706https://osakalucci.jp/shoutikudou
 
と記載されているのを

sheet2に
A列 B列
1行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1 https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1
2行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1   https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/
3行目 https://www.navitime.co.jp/poi?spot=02022-1220435&;ncm=1   http://www.arashiyamaryo.or.jp/access/
4行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://co-trip.jp/article/191673/
5行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1  https://hitosara.com/ch_478603/
6行目 https://www.navitime.co.jp/poi?spot=02022-1212380&;ncm=1 https://kyo-soku.com/2020/04/03/salon-de-muge/
7行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://www.fruitmoti-shoutikudou.jp/
8行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1   https://sweetsguide.jp/product/90706
9行目 https://www.navitime.co.jp/poi?spot=01125-t100443972s&;ncm=1  https://osakalucci.jp/shoutikudou

このように変換したいです。オンライン上でRubyを使用して作成したいのですが、どのようにすればよいでしょうか?
0146デフォルトの名無しさん (ワッチョイ 972c-1bRV)
垢版 |
2021/04/25(日) 18:11:40.31ID:oFpMkyEJ0
まず、http://〜、https://〜 を、3つ連結した、

https://http://https://〜 みたいな文字列を、3つに分離する
0147デフォルトの名無しさん (ワッチョイ 6333-gjMA)
垢版 |
2021/04/25(日) 18:37:11.77ID:nrx375qK0
>>145
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。

など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
0148デフォルトの名無しさん (ワッチョイ 972c-1bRV)
垢版 |
2021/04/25(日) 23:09:08.20ID:oFpMkyEJ0
3つに分離する部分だけを作った。
入出力の部分は、CSV モジュールを使えば?

re = %r!https?://! # 正規表現。http/https
input = String.new( "https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/http://www.arashiyamaryo.or.jp/access/"; )

positions = [ ]
pos = 0

while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end

# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転

出力
["https://rilakkumasabo.jp/shop/%E5%B5%90%E5%B1%B1";,
"https://www.telacoya.co.jp/company/shop_detail/shop_detail-130/";,
"http://www.arashiyamaryo.or.jp/access/";]
0149148 (ワッチョイ 972c-42zS)
垢版 |
2021/04/26(月) 13:51:09.40ID:0DE0v1OZ0
出来た!
文字列を3分割する部分を関数化して、呼び出す

入出力は、CSV 形式で。
入力ファイルは、input.csv

paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?

# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https

# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )

positions = [ ]
pos = 0

while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end

# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end

次へ続く
0150148 (ワッチョイ 972c-42zS)
垢版 |
2021/04/26(月) 13:52:06.70ID:0DE0v1OZ0
require 'csv'

result_ary = [ ]

CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )

split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end

# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
0151デフォルトの名無しさん (ワッチョイ b206-A/Lu)
垢版 |
2021/04/26(月) 22:46:21.55ID:RYaLTPlL0
paramsという名前のハッシュを関数の中で使う際、
:codeの組をhogeだけでなくmoge、kuge、sageなど
関数の引数で選べるようにする場合、
'+ 引数名 +'だとエラーになるようですが、
バリューに引数を使おうとしている事自体が根本的に間違っていますか?
params = {
:code=> 'hoge', ←'+ 引数名 +'だとダメ。ここを入れ替えたい
:page => 1,
:count => 5
}
0153デフォルトの名無しさん (ワッチョイ b206-A/Lu)
垢版 |
2021/04/26(月) 23:08:46.56ID:RYaLTPlL0
>>152
APIを使用して住んでる地域の時間ごとの過去の天気を見る学習をするはずだったのですが
自分でも何がしたいのかわからなくなってきたのでちょっと出直します。
すみませんでした。
0161デフォルトの名無しさん (ワッチョイ 9f5f-woDw)
垢版 |
2021/05/12(水) 10:19:17.28ID:iLdhy1ll0
>>160
require "bundler/inline"
gemfile do
source "https://rubygems.org";
gem "benchmark_driver"
end

Benchmark.driver do |x|
x.prelude %{require "csv"}
x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }}
x.report "to_csv", %{ csv_str = ITEMS.map{ _1.to_csv }.join }
x.report "&:to_csv", %{ csv_str = ITEMS.map(&:to_csv).join }
x.report "generate", %{ csv_str = CSV.generate{|csv| ITEMS.each{|it| csv << it } } }
end

計測すると6倍ほどto_csvの方が遅い事がわかる

to_csvは
https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv/core_ext/array.rb
https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv.rb#L1452
見ると分かるがCSV.new等を毎回行う手抜き実装(バグりにくいというメリットは確かにある)
1行だけならともかく複数行をcsv化したいなら微妙
0164デフォルトの名無しさん (ワッチョイ 9f5f-woDw)
垢版 |
2021/05/12(水) 11:41:45.65ID:iLdhy1ll0
>>162
Benchmark.driver do |x|
x.prelude %{require "csv"}
x.prelude %{require "tempfile"}
x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }}
x.report "to_csv", %{ Tempfile.create{ _1.write ITEMS.map(&:to_csv).join } }
x.report "generate", %{ Tempfile.create{ _1.write CSV.generate{|csv| ITEMS.each{|it| csv << it } } }}
end

確かに縮まりはしたが
うちのオンボロPCでも5倍弱の差が出ました。
0166デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
垢版 |
2021/06/01(火) 17:26:14.50ID:iV+6o72S0
c="C:\Program Files\7-Zip\7z.exe"
p c

で出力は

> "C:Program Files\a-Zip\az.exe"

となってしまうんですが、なんで7がaに変わってしまってるんでしょうか?

2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]です
0169デフォルトの名無しさん (ワッチョイ 5133-wy77)
垢版 |
2021/06/01(火) 18:56:08.30ID:acqsmkid0
>>166
>>168のシングルクォートよりも、パスの区切り文字を「/」にすることをすすめたい。

パスの区切り文字が「¥」でなければいけないのはコマンドプロンプトなど一部のみ。
だいたいが「/」でも可。
0170デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
垢版 |
2021/06/01(火) 21:37:59.00ID:iV+6o72S0
>>167-169
まとレスにて失礼します

aに置き換わる謎はわかりました
シングルクォートなのですが、面倒くさいことにWindowsの決め打ちで空白が入っているので
それを考えるとダブルクォートで囲まざるを得ず、けっきょくこんな形になってしまいました

c="\"C:\\Program Files\\7-Zip\\7z.exe\""

このあと
system("#{c} a -mx9 ...")
みたいな形で呼び出します
0173デフォルトの名無しさん (ワッチョイ dbb7-08Bm)
垢版 |
2021/06/02(水) 20:29:52.62ID:92rWXivp0
>>171
ああなるほど
それで行けますね
昔は自分でもそんな書き方してたかもしれなかったです

>>172
ご案内ありがとうございます
シングルクォートとダブルクォートの意味とか違いは理解していたのですが
中に\入れたときとか、とくに168さんに指摘されたように8進数での扱いが特別だということは
よく理解していなかったので、これを機会に知識を正確にしておきます
レスを投稿する


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