寫雙平台app的困難處
上面這段code在寫啥?實在讓人搞不懂....
這是一段ios app swift code.
其實我覺得code不該寫的太複雜,應該分步驟做比較好。
其實他是在講closure的應用,建立一個closure, 輸入兩個字串型態值s1,s2,若s1>s2,回傳true, 最後 再 排序陣列,回傳一個陣列。
很難對不對,第一個你要知道陣列在swift中有sorted這方法,
然後swift2 又不同於swift4.
第二就是closure的使用.
這在java是完全不同的,沒有這用法。
(有點像inner class,但又不一樣)
所以當你問一個app工程師為啥。。。
你只會寫java android ,不會寫ios app?
或是
你怎麼只會寫ios app不會寫android app?
這些都是很簡單的可以回答你:
1.兩者程式語言完全不同,平台api不相似,app工程師都要重學,app也都要重寫,時間都要花兩倍以上,而且花時間還不一定做得出來。
2.如果有人說他兩個都會寫,第一個可能他都只會寫helloworld,功力一定都不深,吹牛成分居多,要欺騙你不懂。但也有可能真的很厲害,看他實際寫出的app就會知道,如果一直當機,然後又愛說一堆理由搪塞,大概只是三腳貓功夫而已。
在看看第二段code:
class MyViewController : UIViewController {
override func loadView() {
...
func greeting() {
print("hello world")
}
let hi = greeting;
hi();
...}
在java中不能宣告一個function成一個變數。
但在swift中可以,
很容易導致程式設計師觀念上衝突。
這還只是最簡單的一個例子,還有很多類似的衝突。
但是你不可能叫apple 改用java,
也不可能叫google改用swift.
尤其現在又遇到oracle拿 java到處告人的情況下...
這也造成數以億計的工程師只有學兩套,
無奈的嘆息。
所以我才說寫程式沒有辦法速成的,
都要一點一滴累積經驗才可以。
不要相信補習班説三個月學會andorid或ios app.
那些都是噱頭。
如果是寫寫簡單的程式還可以,
但一遇到複雜的問題就無法處理了。
這些都是要練功的,寫個幾個app後才有可能慢慢熟悉,
有門檻,不是隨便說說就可達到。
留言
張貼留言