作者applebg (Malicious Racist)
看板Soft_Job
標題[討論] 遇到問題就workaround真的好嗎?
時間Thu Dec 2 19:13:29 2021
我玩程式語言有時候會遇到一些程式語言本身定義就跟
我自己想做的運算互相衝突的時候。Python的string被
定義為immutable, 可是可以使用index的方式去存取
字元。
比方說:
s = "aabbcc"
print(s[0])
執行結果會給我輸出: a
大家在解決問題的時候,常常想的事情好像是繞過這種
問題。就我看來,能以index 的方式存取字元,我就會
誤以為可以直接對字串s 進行修改,像是
s[0] = "b"
這個敘述就不會過。
但知道python的字串是immutable之後,其實我只需要用
s存取資料,再宣告一個s1變數,把s存取的資料進行重新
組合就可以了。
常常都要做這種workaround,而不是能以我最直覺的方
式操作。
然後不同的程式語言,還會有不一樣的定義。我覺得好累
。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.42.235 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1638443613.A.124.html
※ 編輯: applebg (36.226.42.235 臺灣), 12/02/2021 19:15:54
1F:推 jlhc: 你在說中文嗎... 12/02 19:15
2F:噓 Raymond0710: 這也叫workaround???不就是語言特性 12/02 19:15
如果有程式語言把字串定義為mutable,那就又不一樣了。每個程式語言都有自
己的定義,永遠追不完。
※ 編輯: applebg (36.226.42.235 臺灣), 12/02/2021 19:18:21
3F:噓 gasbomb: 有意見自己去發明語言 12/02 19:17
※ 編輯: applebg (36.226.42.235 臺灣), 12/02/2021 19:19:43
4F:噓 tbpfs: 這是超新手程度的問題,你來錯版了 12/02 19:21
我在想高手們是不是workaround之後,還能把他們workaround的方式寫成一個
方便使用的function,以後大家遇到一樣的問題就直接拿他們的function用。
對我是新手。
※ 編輯: applebg (36.226.42.235 臺灣), 12/02/2021 19:27:48
5F:推 alihue: java: str.charAt(i) 12/02 19:26
6F:→ alihue: python 為了易用確實犧牲了一些嚴謹的設計。如果無法接受 12/02 19:29
7F:→ alihue: 就回去寫靜態語言,可以靠 IDE 的靜態分析省很多地雷 12/02 19:29
8F:推 Sunal: 要不要來寫rust,沒定義好都不給你操作 12/02 19:53
9F:推 wulouise: 我還以為你要自己發PR解bug 12/02 19:53
10F:推 l1724108: 不能用i++,只能用i += 1 wORkaRouND 我覺得好累 12/02 19:54
11F:推 js07150715: 去寫C就沒這種問題 12/02 20:05
12F:推 hduek153: 一台不能飛的車然後你抱怨怎麼不能飛? 12/02 20:08
13F:→ hero32036: 這也可以唸..轉行好了 12/02 20:10
14F:推 nh60211as: ??? 12/02 20:11
15F:推 jhjhs33504: 某些人開發的APP會閃退就是這樣搞 12/02 20:15
16F:→ WaterLengend: 你也想了個workaround不會被刪文但是也沒解決什麼 12/02 20:33
17F:→ WaterLengend: 問題。 12/02 20:33
18F:→ viper9709: 可以考慮包成函式~雖然這樣就違背原語言的特性了... 12/02 20:34
19F:→ DrTech: 哈哈,還好你沒寫過 perl,你會瘋掉 12/02 20:47
20F:推 abccbaandy: 你錯了,高手遇到這問題就會再發明一種新語言,不然 12/02 20:49
21F:→ abccbaandy: 你以為為什麼會有這麼多語言? 12/02 20:49
22F:噓 horsekit: python的字串是mutable 這不是workaround 用改陣列的方 12/02 21:02
23F:→ horsekit: 式改字串習慣很不好 12/02 21:02
24F:噓 leo021566: 唉 12/02 21:17
25F:→ CMJ0121: python的字串是mutable <-- 這是對的嗎? 12/02 21:44
26F:推 Isaea: 寫php啊簡單粗暴 12/02 21:48
27F:→ somefatguy: 你的問題是怎麼會覺得好累,不要一直坐著要多運動 12/02 21:57
28F:→ superpandal: 很多都不直覺沒錯 java就是 一堆以設定當語法的... 12/02 21:59
29F:→ superpandal: 語法即是設定 不然要ide做什麼 根本不好除錯 12/02 22:00
30F:→ superpandal: java底層還ok 一堆框架步步是坑 浪費時間工具鏈 12/02 22:01
31F:噓 Petyr: 你確定你知道什麼叫做workaround? 12/02 22:02
32F:推 DarkIllusion: 看來你把python字串immutable的設計視為一個問題 窩 12/02 22:06
33F:→ DarkIllusion: 覺得不是這樣的 12/02 22:06
35F:→ easyman: 每種語言有不同設計哲學,覺得無法了解,就換一種吧。 12/02 22:07
36F:→ superpandal: 有時候真的覺得很感慨 學習學一堆沒實質意義又很累的 12/02 22:14
37F:→ superpandal: 做什麼呢? 12/02 22:14
38F:→ saladim: 此篇前提不對吧 12/02 22:33
39F:→ ssccg: 為什麼能以index存取就要能修改? get和set分開不是很常見? 12/02 22:45
40F:→ ssccg: 你所謂的workaround還是沒有修改到原物件,這只是正常操作 12/02 22:49
41F:→ ssccg: 然後說到直覺,很多人所謂的直覺,其實只是自己最先學的語 12/02 22:56
42F:→ ssccg: 言的特性,自己用有誤會的成見寫錯了再說不直覺 12/02 23:00
44F:噓 KanzakiHAria: 推 12/03 00:42
45F:推 godsparticle: 怎又語言大戰 12/03 08:53
46F:→ shooter555: 說出一句話後 不管再怎麼想改變句子的內容 就是第二句 12/03 09:38
47F:→ shooter555: 話了 所以用新的字串來保存你想改變的新的字串 也沒什 12/03 09:38
48F:→ shooter555: 麼不對 12/03 09:38
49F:→ Qoofate: 這文也太廢了 你還是去7-11好了 12/03 09:39
50F:→ shooter555: 原本的直接用陣列越過保護 才真的是workaround 12/03 09:40
51F:噓 godbye45: 等你發明一套新語言 12/03 11:09
53F:→ tbpfs: 不過你的中文呢..... 12/03 12:30
54F:→ OrzOGC: 還好我門外漢 不認為這是問題 12/03 12:35
55F:推 vi000246: 我都直接右鍵 格式化硬碟 12/03 13:02
56F:噓 newking761: 可悲 12/03 13:02
57F:噓 me356500: 吐了= = 12/03 13:34
58F:噓 aalexx: 為什麼推數是正的 12/03 14:29
59F:噓 www17010: 原來是上次在研所版被噓爆的朋友,看來你還是轉換跑道好 12/03 15:41
60F:→ www17010: 了 12/03 15:41
61F:噓 sniper2824: 大家都有得噓 真好 12/03 17:09
62F:→ WayneHong: 看他以前的發文真的搞不懂是不是在反串0.0 12/03 17:41
63F:噓 BearFather: 講中文 12/03 17:57
64F:→ rockman037: 以py的特性, 難保有人想在裡面塞多個char,這討論不 12/03 18:52
65F:→ rockman037: 完 12/03 18:52
66F:噓 andy831020: 浪費五分鐘想這到底是不是反串釣魚 12/03 19:06
67F:噓 zipigi: 笑死 到底在供蝦毀 12/03 19:46
68F:推 tvbic: 你第一天寫程式是不是 12/03 20:25
69F:噓 pttano: 你的workaround 想法真特別,你是半桶雞還是新人? 12/03 20:42
70F:→ superpandal: char array確實貼合C 沒有不好 12/03 20:59
71F:推 jhjhs33504: 只能說規模不同做法有差 12/03 22:38
72F:噓 KyGrA: 我覺得去上班的路程都比這些累 參考一下 12/04 04:24
73F:噓 daddy29: ...............你不太適合後端 12/04 18:39
74F:噓 remmurds: 聖光術 12/05 13:23
75F:噓 lonelytea: XD 12/06 03:05
76F:噓 m2938: 這種程度拜託不要再寫code了 12/06 13:10
77F:噓 sarsman: Immutable的中文是不可變的,跟用index讀取不衝突啊 12/06 15:30
78F:噓 brad84622: 阿鬼你砍掉重練吧 12/06 18:04
79F:推 gn01642884: 字串為什麼是immune的是有它的原因 12/06 18:12
80F:→ gn01642884: 可以參考“程式設計師的自我修養”一書 12/06 18:13
81F:→ superpandal: 看來這篇推文是針對樓主的 不過只能說哪有什麼修養 12/06 21:26
82F:→ superpandal: 有名的專案還不是爛的跟什麼一樣 12/06 21:26
83F:噓 ku399999: 你不適合寫程式,轉行吧 12/07 08:12
84F:→ ku399999: 搞不清楚還不懂問人,說別人workaround 12/07 08:13
85F:→ shooter555: 被噓到這樣跟風的應該不少 這種保護的確會造成效率下 12/07 09:24
86F:→ shooter555: 降就是了 12/07 09:24
87F:推 IhateOGC: 先運動吧,整天坐著陷入迷思了 12/10 03:52