Re: [討論] 有沒有讀工程的覺得學python很難/煩的呢
看板Tech_Job (科技人)作者KanzakiHAria (神崎・H・アリア)時間3周前 (2024/10/26 13:13)推噓40(42推 2噓 79→)留言123則, 54人參與討論串3/3 (看更多)
※ 引述《champdessert (朱安)》之銘言:
: 如題
: 小弟唸工程的,之前學C++拿來處理實驗數據、玩arduino或用matlab都覺得還不錯用,因為就那幾個指令,只要靠邏輯就可以慢慢土法煉鋼拼湊出來要的東西。
: 但最近碰到大家說很好學的python,卻覺得它東西都過度包裝所以不好用,正因為都是人「定義」包裝好的東西,一定要照著他的方法寫,反而用起來覺得煩。如果遇到bug因為都是包裝好的指令所以無法用直觀的邏輯去debug或推論,還要上網查一堆資料,還不一定有解。而且這樣就會變成case by case,在不同的應用就要學一系列不同的函式定義,情境稍有不同可能就無法套用,沒辦法用最基礎的一套解決。
: 為什麼大家都說c++比較難python簡單,而我的感覺卻相反呢?是我之前都用得太淺了嗎?
: --------------------------------
: 更:感謝大家的回覆,看來真的是我學得太基礎的關係才會這麼覺得。要來努力學習了~
你肯定是不會C++ C++是一個高度需要理解編譯器運作的語言 隨便舉個例子
template <typename T, typename... Args>
constexpr auto add(T&& first, Args&&... rest) {
return std::forward<T>(first) + add(std::forward<Args>(rest)...);
}
template <typename T>
constexpr T add(T&& value) {
return std::forward<T>(value);
}
這是C++11/14 template使用可變參數(...)來處理多個不同型態參數
所以需要遞歸終點<>,確保模板遞歸能正常結束
constexpr就是編譯時期決定
std::forward跟std::move是C++11的 move symantec 是compiler優化的概念
到了C++17 多了摺疊表達式(Variadic Template)可以簡化每次需要定義遞迴終點
template <typename... Args>
constexpr auto add(Args&&... args) {
return (std::forward<Args>(args) + ...);
}
現實情況兩種都要會 不能只會Variadic Template的版本 因為最廣泛是C++11
然後因為早期(C++20以前) 會造成噴大量的compiler error又很難找問題
所以這段C++20會再升級先定義concept來讓compile error問題更明確在哪
template<typename T, typename U>
concept Addable = requires(T a, U b) {
{ a + b } -> std::same_as<decltype(a + b)>;
};
template <typename... Args>
requires (Addable<Args, Args> && ...)
constexpr auto add(Args&&... args) {
return (std::forward<Args>(args) + ...);
}
以上只是C++少量編譯器針對的feature
其他還有很多是針對編譯時期優化的工具 std::less<> 編譯時期比大小腦包工具
有專門給編譯器看的[[fallthrough]] 強制要求編譯器跳過的神經病Attribute
<=>(三向比較運算符或太空船運算符)這也是針對編譯器後端的的智障語法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.99.2 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1729919600.A.BB3.html
推
10/26 13:16,
3周前
, 1F
10/26 13:16, 1F
推
10/26 14:02,
3周前
, 2F
10/26 14:02, 2F
→
10/26 14:02,
3周前
, 3F
10/26 14:02, 3F
→
10/26 14:02,
3周前
, 4F
10/26 14:02, 4F
推
10/26 14:18,
3周前
, 5F
10/26 14:18, 5F
→
10/26 14:21,
3周前
, 6F
10/26 14:21, 6F
推
10/26 14:25,
3周前
, 7F
10/26 14:25, 7F
→
10/26 14:26,
3周前
, 8F
10/26 14:26, 8F
推
10/26 14:27,
3周前
, 9F
10/26 14:27, 9F
C++白爛之處 還要知道哪些寫法是存活在哪些C++版本......
甚至還有 (since C++17)(deprecated in C++20) 這種只存活一版的鬼東西=.=
https://i.imgur.com/U2lxAXe.png
有圖有真相 std::variant_alternative
推
10/26 14:28,
3周前
, 10F
10/26 14:28, 10F
→
10/26 14:33,
3周前
, 11F
10/26 14:33, 11F
推
10/26 15:01,
3周前
, 12F
10/26 15:01, 12F
→
10/26 15:02,
3周前
, 13F
10/26 15:02, 13F
推
10/26 15:19,
3周前
, 14F
10/26 15:19, 14F
→
10/26 15:19,
3周前
, 15F
10/26 15:19, 15F
→
10/26 15:21,
3周前
, 16F
10/26 15:21, 16F
→
10/26 15:38,
3周前
, 17F
10/26 15:38, 17F
推
10/26 15:59,
3周前
, 18F
10/26 15:59, 18F
可以看編譯器警告未來不支援 然後看哪時move
到了move的版本就是compile error
→
10/26 16:08,
3周前
, 19F
10/26 16:08, 19F
→
10/26 16:09,
3周前
, 20F
10/26 16:09, 20F
→
10/26 16:09,
3周前
, 21F
10/26 16:09, 21F
真的 開發要快都是要用有package mamanger的現代語言
js還支援熱插拔就地改code看結果 Hot Module Replacement (HMR)
C++還要先等compile......
推
10/26 16:11,
3周前
, 22F
10/26 16:11, 22F
→
10/26 16:14,
3周前
, 23F
10/26 16:14, 23F
→
10/26 16:14,
3周前
, 24F
10/26 16:14, 24F
→
10/26 16:14,
3周前
, 25F
10/26 16:14, 25F
真的 所以主要還是C++11最為廣泛
推
10/26 16:24,
3周前
, 26F
10/26 16:24, 26F
推
10/26 17:03,
3周前
, 27F
10/26 17:03, 27F
推
10/26 17:09,
3周前
, 28F
10/26 17:09, 28F
→
10/26 17:09,
3周前
, 29F
10/26 17:09, 29F
C++ package更是地獄 現在比較好的用CMake 去build
更古老的還要用automake之類的 很難搞
現代語言都有套件管理 加上Dockrefile馬上就可以搬家了
→
10/26 17:09,
3周前
, 30F
10/26 17:09, 30F
推
10/26 17:16,
3周前
, 31F
10/26 17:16, 31F
→
10/26 17:16,
3周前
, 32F
10/26 17:16, 32F
→
10/26 17:16,
3周前
, 33F
10/26 17:16, 33F
推
10/26 17:16,
3周前
, 34F
10/26 17:16, 34F
還有 49 則推文
還有 9 段內文
→
10/26 22:38,
3周前
, 84F
10/26 22:38, 84F
→
10/26 23:29,
3周前
, 85F
10/26 23:29, 85F
→
10/26 23:29,
3周前
, 86F
10/26 23:29, 86F
推
10/27 00:35,
3周前
, 87F
10/27 00:35, 87F
推
10/27 01:01,
3周前
, 88F
10/27 01:01, 88F
→
10/27 01:16,
3周前
, 89F
10/27 01:16, 89F
推
10/27 01:37,
3周前
, 90F
10/27 01:37, 90F
→
10/27 01:37,
3周前
, 91F
10/27 01:37, 91F
推
10/27 01:58,
3周前
, 92F
10/27 01:58, 92F
→
10/27 01:58,
3周前
, 93F
10/27 01:58, 93F
推
10/27 03:29,
3周前
, 94F
10/27 03:29, 94F
推
10/27 06:33,
3周前
, 95F
10/27 06:33, 95F
推
10/27 06:39,
3周前
, 96F
10/27 06:39, 96F
→
10/27 06:39,
3周前
, 97F
10/27 06:39, 97F
推
10/27 08:04,
3周前
, 98F
10/27 08:04, 98F
→
10/27 08:11,
3周前
, 99F
10/27 08:11, 99F
→
10/27 08:11,
3周前
, 100F
10/27 08:11, 100F
→
10/27 08:11,
3周前
, 101F
10/27 08:11, 101F
→
10/27 08:11,
3周前
, 102F
10/27 08:11, 102F
→
10/27 08:11,
3周前
, 103F
10/27 08:11, 103F
→
10/27 08:11,
3周前
, 104F
10/27 08:11, 104F
→
10/27 08:12,
3周前
, 105F
10/27 08:12, 105F
→
10/27 08:12,
3周前
, 106F
10/27 08:12, 106F
推
10/27 09:18,
3周前
, 107F
10/27 09:18, 107F
→
10/27 09:18,
3周前
, 108F
10/27 09:18, 108F
→
10/27 09:18,
3周前
, 109F
10/27 09:18, 109F
推
10/27 09:57,
3周前
, 110F
10/27 09:57, 110F
→
10/27 10:26,
3周前
, 111F
10/27 10:26, 111F
推
10/27 12:44,
3周前
, 112F
10/27 12:44, 112F
推
10/27 18:56,
3周前
, 113F
10/27 18:56, 113F
→
10/27 18:59,
3周前
, 114F
10/27 18:59, 114F
→
10/27 18:59,
3周前
, 115F
10/27 18:59, 115F
→
10/27 18:59,
3周前
, 116F
10/27 18:59, 116F
→
10/27 18:59,
3周前
, 117F
10/27 18:59, 117F
推
10/28 09:20,
3周前
, 118F
10/28 09:20, 118F
→
10/28 09:58,
3周前
, 119F
10/28 09:58, 119F
推
10/28 10:27,
3周前
, 120F
10/28 10:27, 120F
推
10/29 08:50,
3周前
, 121F
10/29 08:50, 121F
推
10/29 10:18,
3周前
, 122F
10/29 10:18, 122F
推
10/30 09:11,
3周前
, 123F
10/30 09:11, 123F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
43
199
Tech_Job 近期熱門文章
PTT職涯區 即時熱門文章
155
332