Re: [討論] 有沒有讀工程的覺得學python很難/煩的呢

看板Tech_Job (科技人)作者 (神崎・H・アリア)時間4小時前 (2024/10/26 13:13), 2小時前編輯推噓7(706)
留言13則, 10人參與, 2小時前最新討論串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); } 這是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++20以前) 會造成噴大量的compiler error又很難找問題 所以這段會再升級先定義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, 4小時前 , 1F
推這篇
10/26 13:16, 1F

10/26 14:02, 3小時前 , 2F
光lvalue rvalue reference和move semantics 就很煩
10/26 14:02, 2F

10/26 14:02, 3小時前 , 3F
了,再加上template metaprogramming 讓我想起不好
10/26 14:02, 3F

10/26 14:02, 3小時前 , 4F
的回憶了
10/26 14:02, 4F

10/26 14:18, 3小時前 , 5F
他把c當成c++
10/26 14:18, 5F

10/26 14:21, 3小時前 , 6F
跟我想的差不多,樓下碼農幫我judge一下
10/26 14:21, 6F

10/26 14:25, 2小時前 , 7F
只能說雖然很難 但是比python酷
10/26 14:25, 7F

10/26 14:26, 2小時前 , 8F
不然這年頭隨便一個人都說自己會python
10/26 14:26, 8F

10/26 14:27, 2小時前 , 9F
所以後來才有if constexpr讓事情沒有那麼糟糕 XD
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, 2小時前 , 10F
寫C++很想大聲說我看懂了 但實際上不懂
10/26 14:28, 10F

10/26 14:33, 2小時前 , 11F
嗯對 跟我想的一樣
10/26 14:33, 11F
※ 編輯: KanzakiHAria (36.231.99.2 臺灣), 10/26/2024 14:48:32

10/26 15:01, 2小時前 , 12F
好難 我第一次看到c++就知道要放棄了
10/26 15:01, 12F

10/26 15:02, 2小時前 , 13F
metaprogramming真的走偏了我個人覺得
10/26 15:02, 13F
文章代碼(AID): #1d77fmkp (Tech_Job)
文章代碼(AID): #1d77fmkp (Tech_Job)