作者freeman371 (自由人371)
看板Soft_Job
標題[討論] switch大家怎麼排版?
時間Mon Nov 27 19:16:09 2023
很多程式語言都有switch這個語法
例如:C、Java、PHP、JavaScript等
我時常用到switch都會有個猶疑
就是switch到底該怎麼排版好呢?
通常程式工程師在寫程式時
在大括號之內的程式會比括號外的增加一個tab(或多個空格)
其他則在同一層
但是今天的switch語法有個case
到底case到底要不要再增加個tab?
也就是像這樣:
switch(…){
case …:
…..;
break;
…..
}
因為case在switch的大括號當中
習慣上大括號裡的程式會多一個tab
不過case底下又有類似其副程式的程式
那case裡的程式是否又要再多一層tab?(不過case不是大括號刮住)
這樣就變成switch裡面一定有兩層以上的排版
大家都是怎麼寫switch語法的排版?
以下有三種排版方式:
1)
switch(…){
case …:
…..;
break;
…..
}
2)
switch(…){
case …:
…..;
break;
…..
}
3)
switch(…){
case …:
…..;
break;
…..
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.77.7 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1701083771.A.C68.html
2F:→ accessdenied: 殺洨菜逼八問題...自己覺得怎樣不會眼花就怎樣好。 11/27 19:44
3F:→ accessdenied: 個人習慣(1) 11/27 19:44
4F:推 ha878787: 1 11/27 19:49
5F:推 Lhmstu: 不重要,看公司要什麼排版我就 寫什麼 11/27 20:21
6F:→ guest8080: 1然後case也加大括號 11/27 21:42
7F:推 chuegou: case麻煩也括號 11/27 22:08
8F:推 yamakazi: clang-format就好,時間花在開發上面 11/27 22:29
9F:→ yamakazi: 才划算 11/27 22:29
10F:推 abc21086999: python 有這個ㄇ 11/27 22:37
11F:推 yamakazi: clang format 會自動幫你排版,存檔的時候自動排好 11/27 22:45
12F:推 viper9709: 個人習慣1~3也可以 11/27 22:50
13F:推 kurtsgm: 老問題 問就是 1. 依照公司規定 2. 依照不同語言慣例 11/27 23:05
14F:推 OriginStar: 我個人喜歡對稱排版,而且每個 case 都有 { },視覺上 11/27 23:08
15F:→ OriginStar: 比較符合我的喜好,可以一眼就可以看初階層 11/27 23:09
16F:→ t64141: 公司用的 IDE 或相關工具自動排版,不用花時間人工校對這 11/27 23:14
17F:→ t64141: 種東西 11/27 23:14
18F:推 abccbaandy: 用IDE預設最好 11/27 23:48
19F:推 NDark: 同樓上 有規則的公司請入職安裝IDE的時候一併把排版裝好 11/27 23:49
20F:→ NDark: 如果沒裝就照預設 11/27 23:49
21F:推 j0958322080: python 在 3.10 後加入了 11/27 23:59
22F:→ sharek: 用ide或lint 規則設一設,公司有統一就好 11/28 06:46
23F:推 ctrlbreak: 一律用自動的, 多人專案就設定同一規則, 不然檔案比對 11/28 06:52
24F:→ ctrlbreak: 會一團亂XD 11/28 06:52
25F:推 andy0055: IDE 預設就好+1 11/28 08:16
26F:→ andy0055: 你們部門應該大家都用相同IDE 吧? 11/28 08:16
27F:噓 lturtsamuel: 問linter啊問我幹嘛 11/28 08:54
28F:推 kyoe: ){ 中間可以空格嗎? ) { 11/28 09:02
29F:推 jobintan: 除非公司有特別規定否則VSCode預設的就好別自找麻煩…… 11/28 11:05
30F:推 srwhite: 好久沒有手動排版了 11/28 11:22
31F:→ bill0205: IDE幫排完版 根本沒在注意 11/28 11:58
32F:推 sniper2824: 看語言看公司 11/28 12:24
33F:→ asdfghjklasd: 我都叫馬力歐自己排 11/28 12:30
34F:→ longlongint: 請到NSwitch專版發文(欸不是 11/28 12:51
35F:→ longlongint: 不重要 VS 直接F1 format this document 11/28 12:52
36F:推 walinama: 1 11/28 13:16
37F:→ shvanta: PHP語言的話,PSR-12有規定 11/28 13:27
39F:→ shvanta: 但現代的IDE都直接幫你處理好了,理論上不知道也沒關係 11/28 13:28
40F:→ acgotaku: 組內規定怎麼用就怎麼用 沒規定就自己開心順眼 11/28 13:46
41F:推 AbyssBoys: IDE協助排 11/28 16:11
42F:推 seanwu: 常常明明就沒歪,還是想要手賤按一下gg=G或Alt-Shift-F.. 11/28 17:45
43F:→ ma721: 幾乎沒在用switch 11/28 18:03
44F:推 pp129908: ctrl + alt + o 11/28 19:53
45F:推 TAKADO: IDE大部分預設都會排成1的樣子 11/28 20:05
46F:推 pot1234: 3 11/28 21:47
47F:推 jack42107: 照語言慣例啊 每個語言不見得一樣 11/28 23:27
48F:→ ZakuSIN: 直接用IDE排版處理掉 就這樣 11/29 00:56
49F:推 shownlin: 我都照 Linux kernel coding style 11/29 02:18
51F:→ shownlin: ing-style.html 11/29 02:19
53F:→ shownlin: 就是case跟switch align 11/29 02:19
54F:推 Dracarys: 3 11/29 02:22
55F:推 hermithsieh: 我覺得程式能跑就好… 11/29 07:07
56F:→ jakert123: 不要寫switch好嗎 11/29 10:56
57F:推 jobintan: 不然是要寫if...else if...else if...這樣嗎? 11/29 13:11
58F:→ shooter555: case 內大括號個人覺得醜 通常太多都直接再拆function 11/29 13:52
59F:→ shooter555: 不過基本上就是跟著project的風格走 怎麼訂怎麼寫 11/29 13:53
60F:→ shooter555: 要不然一人一種風格 整個更醜 11/29 13:54
61F:→ seedli: 用統一coding style的formatter就好啦,煩惱這個幹嘛 11/29 13:54
62F:推 ck237: 自動排版 +1,煩惱這個幹嘛 11/29 17:39
63F:→ qpowjohn: 依循團隊習慣 11/29 18:37
64F:→ notimenofree: switch排版沒差吧… 11/30 00:55
65F:推 Litfal: 可以不要用switch,用switch拜託簡單明瞭,不加大括號 11/30 01:54
66F:→ zxzx8059: 預過編譯器處理case有沒有大括號行為不一樣… 11/30 08:47
67F:→ ssccg: 專案有規定照專案,沒規定IDE/編輯器預設的排下去 11/30 14:22
68F:→ ssccg: 不用想這麼多 11/30 14:22
69F:推 JoaoWang: 都照公司 12/01 00:50
70F:推 una283: 照公司規定 12/01 07:24
71F:推 mrgyt1030: 真爽 有時間煩惱這問題 12/01 23:05
72F:→ forewero: 我都改用map/dictionary, switch臭臭 12/02 14:02
73F:推 newking761: 主要是看review的人會不會靠腰,不會就隨便 12/04 11:48
74F:→ superpandal: 我寫1 但是通常看很多c的project會寫3 12/04 21:43
75F:推 hooll111: 用if代替 12/10 17:34