#map函數
Explore tagged Tumblr posts
Text
C# 實作Javascript map函數

說明:這次主要內容為實作上次所介紹的Javascript的"map函數"功能,我以C#的List陣列擴充了一個Map方法,並使用了多載的方式使參數能像Javascript的map功能任意選填。
實作擴充List陣列程式碼如下:
public static List<T> Map<T>(this List<T> e, Func<T, T> f) { List<T> tmp = new List<T>(); foreach (var i in e) tmp.Add(f(i)); return tmp; }
以上程式為單一引數且引數中的函數的引數也是單一的Map多載實作。和Javascript的map功能幾乎一模一樣。
public static List<T> Map<T, U>(this List<T> e, Func<T, U, T> f, U e2) { List<T> tmp = new List<T>(); foreach (var i in e) tmp.Add(f(i,e2)); return tmp; }
以上程式為兩個引數且函數的引數也是兩個的Map多載實作,另外因為c#似乎無法像Javascript的apply()函數或是call()函數,可以直接將函數的this指定為該引數的物件,所以我這邊改了一下輸入函數的引數,將輸入函數的引數增加一個在最後面為Map函數的第二個引數的物件。
public static List<T> Map<T>(this List<T> e, Func<T, int, T> f) { List<T> tmp = new List<T>(); int n = 0; foreach (var i in e) tmp.Add(f(i, n++)); return tmp; }
以上程式為單一引數且引數中的函數的引數是兩個的Map多載實作。輸入的函數的第二個引數和Javascript的map一樣,都是執行的迴圈中當下的索引值,索引值從0開始每圈遞增1。
public static List<T> Map<T, U>(this List<T> e, Func<T, int, U, T> f, U e2) { List<T> tmp = new List<T>(); int n = 0; foreach (var i in e) tmp.Add(f(i, n++,e2)); return tmp; }
以上程式為兩個引數且引數中的函數的引數是三個的Map多載實作。輸入函數中的第三個引數和上面的程式一樣是Map函數的第二個引數所輸入的參數值。
public static List<T> Map<T>(this List<T> e, Func<T, int, List<T>, T> f) { List<T> tmp = new List<T>(); int n = 0; foreach (var i in e) tmp.Add(f(i, n++, e)); return tmp; }
以上程式為單一引數且引數中的函數的引數是三個的Map多載實作。輸入的函數的第二個引數同上面輸入的函數是雙引數的狀況,第三個引數和Javascript的map一樣是Map所執行的那個list陣列,也就是this List<T> e的那個e參數。
public static List<T> Map<T, U>(this List<T> e, Func<T, int, List<T>,U, T> f, U e2) { List<T> tmp = new List<T>(); int n = 0; foreach (var i in e) tmp.Add(f(i, n++, e,e2)); return tmp; }
以上程式為兩個引數且引數中的函數的引數是四個的Map多載實作。輸入的函數的前三個引數和輸入函數為三個引數的前一個多載一樣,最後一個引數和其他Map函數輸入雙引數的狀況一樣。
實際使用範例程式碼:
List<int> data1 = new List<int>() { 1, 2, 3, 4 }; List<int> output = data1.Map(x => x + 1); Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(output)); List<string> data2 = new List<string>() { "Windows 10", "ITE2", "Power", "About" }; List<string> data3 = new List<string>() { "NAS", "Center", "Cloud", "ITE2" }; List<string> output2 = data2.Map(stringadd, data3); Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(output2)); static string stringadd(string a, int b, List<string> c, List<string> d) { return c[b] + " " + d[b]; }
說明:第一行程式宣告了data1變數為int型態的list陣列,並且陣列內容有四筆資料分別為1、2、3、4的數字,第二行程式宣告了output變數為int型態的list陣列並且讓它等於剛才第一行所宣告的data1變數Map(x=>x+1)的結果,x=>x+1相當於f(x) = x+1的函數,所以已Map函數的運作規則data1陣列的第一個陣列變數1輸入f(1) = 1+1會變成2,data1陣列的第二個變數會變成f(2)也就是3,data1陣列的第三個變數會變成f(3)也就是4,data1陣列的第四個變數會變成f(4)也就是5,所以輸出的陣列為[2,3,4,5],output =[2,3,4,5],第三行Newtonsoft.Json.JsonConvert.SerializeObject為Newtonsoft的NuGet套件,可以使用加入NuGet套件來處理JSON相關的資料,Newtonsoft.Json.JsonConvert.SerializeObject主要功能是將物件轉換成JSON的字串,Console.WriteLine主要功能是將引數的內容呈現在console的視窗上,所以console視窗上會顯示[2,3,4,5]的字串,順帶一提因為使用的是WriteLine所以顯示的字串後面會加上換行符號,也就是下一個顯示在console視窗上的資料會在此字串的下一行,第四行程式宣告了data2變數為string型態的list陣列,並且陣列內容有四筆資料分別為"Windows 10"、"ITE2"、"Power"、"About"的字串,第五行程式宣告了data3變數為string型態的list陣列,並且陣列內容有四筆資料分別為"NAS"、"Center"、"Cloud"、"ITE2"的字串,
第六行對data2執行Map函數,引數分別為stringadd這個函數以及data3這個字串陣列,這裡先介紹stringadd這個函數,如第十行所示stringadd函數主要是回傳引數三陣列的第引數二個位置的字串值和空白字符與引數三陣列的第引數二個位置的字串值串接產生的新字串,所以data2.Map(stringadd, data3);會變成data2的第一個陣列值內容"Windows 10"加上空白字元再加上data3的第一個陣列值內容"NAS"也就是"Windows 10 NAS"字串,新產生陣列的第一個陣列值內容,data2的第二個陣列值內容"ITE2"加上空白字元再加上data3的第二個陣列值內容"Center"也就是"ITE2 Center"字串,新產生陣列的第二個陣列值內容,data2的第三個陣列值內容"Power"加上空白字元再加上data3的第三個陣列值內容"Cloud"也就是"Power Cloud"字串,新產生陣列的第三個陣列值內容,data2的第四個陣列值內容"About"加上空白字元再加上data3的第四個陣列值內容"ITE2"也就是"About ITE2"字串,新產生陣列的第四個陣列值內容,第七行將第六行新產生的陣列以JSON字串格式輸出至console視窗顯示,結果為["Windows 10 NAS","ITE2 Center","Power Cloud","About ITE2"]
0 notes
Photo

may 9, 2020 – 00:38 \\
《浮城》
※
五月一日 晴
這天我和他沒有到一向的油麻地咖啡室補習,轉到銅鑼灣一間他在中學時代經常流連的咖啡店。他說這個空間是他一個小秘密,沒有太多人留意到禮頓中心地底這所商舖,所以位置也較多。他引我在不熟悉的商場裏穿梭:在希慎廣場對面的奶茶舖買兩杯優惠奶茶,沿利園山道轉���富明街,穿過利舞臺迷幻現代的Uniqlo,再拗進禮頓道,走下Fusion招牌底的樓梯到達。我們找到一個店外的座位,一貫地並排而坐;他拿出電腦準備他將要考的數學考試,我則讀着自己要分析的文章。
你打從遠遠聽到有人步入樓梯已在門口準備,手持探熱槍要為我們量體溫——豈料我們根本無意購物,只貪圖這裏的座位。我最終還是進去了,在你的虎視之下,但你我都明白什麼量體溫、「麻煩晒」都是些客套動作;我看着櫥窗裏的糕點佯裝思考也是演戲,大家明明都志不在此。我走回座位,你則回到收銀機後,繼續偷偷地張望這兩個男生所為何事。
直至我們要喝奶茶時,你終究忍不住走過來:「先生,依度始終係店鋪範圍,麻煩唔好擺或者飲外來嘅嘢飲,麻煩晒。」我迎合你不好意思地道歉,只沒想過你會這樣不識趣,打破你我之間的君子約定,似乎你在吧檯後如火的目光依然未夠,非得提醒你的存在。我們把奶茶擱在桌下,我偶爾在你忙碌的時候才偷偷喝一口,再跟他說:「飲啖奶茶好似做賊咁吖。」
最終我還是不能專心讀書。並非因為要教他數學——他經常說自己蠢,但一點也不,只是經常神遊太虛、昏昏欲睡;他數學不好全因他天真,沒想到設計一條數的人背後的心意、為他鋪排的種種細碎的證據與線索。他看不到你常常借故抹檯、收拾,都是為了監察我們的一舉一動,但我都盡收眼底,並適時提醒他別再喝了。
這不是不能專心讀書的原因,而是因我讀書時,眼角的餘光不期然看到他的手在反覆律動。多次在教他時中途停止,專注看他在捏手指頭,磨損自己到遍體鱗傷。我實在不忍,提醒幾次以後我幾乎要握起他的手,卻在出手之際感到手如火中燒。恩培多卡勒果然是對的:眼睛屬火,你眼底所觸之處總有炙傷。
夜已漸深,他引路到附近冰室吃過晚飯後,我們在銅鑼灣散步。我���他說我喜歡港島,那裏我看到舊有建築風情的遺留,又夾雜異國情調,隱隱滲出憧憬未來的慾望——我就愛他曖昧壓抑。他默諾,指他住在這裡也未曾測覺,或許路走慣走熟了就沒再注意這些事情。不知何故我們走到駱克道,他說沿著這條路走就到灣仔,我答他我只在示威時走過軒尼詩道,這裡猶如異地。街巷聊天間他送我到巴士站,習慣在地鐵送他離開的我突然不知所措。
車到了,我上去拍過八達通,在玻璃望向站牌倏忽間他就消失於鬧市。我走到巴士上層最前的座位,戴上耳機,剛好播著My Little Airport 的《詩歌舞街》。打開 Google Map,我循著我們走過的路在腦內勾劃一次。記憶中,你再沒出現。
※
五月六日 晴
十八號就是考數學的日子,我還是毫無進展。平日他出來替學生補習時都會順道托他幫忙,在油麻地的咖啡店裡待上一整個下午,然後一同吃飯;然五月一日文憑試考完數學後,他再無需替學生補習了。他邀我進沙田找他,本來以為上他家補習,他卻說甚麼怕家裡有你,約我在沙田站等。
他一如既往地早到了,剛步出地鐵站就見到他。他頭上帶了粉色的髮箍,恍如金箍圈,說要趁疫情好好留一次長髮。他帶我到沙田中央廣場的咖啡店,說沙田可以溫書的空間不多,那時中學不時就會與朋友到這裡溫習。店內很多檯凳都黏上螢光橙色的膠紙,人也不少,好不容易才找到一個位置。我照舊拿出電腦準備,而他則在自己的電腦上完成他的CS功課。我記起上次地鐵裡曾奪去那厚厚的一疊文字讀過,舞鶴的〈悲傷〉,他說他搞不懂裡面你與我、以及艱澀的語句的意思。我讀了數句當然完全看不懂,如今也是這樣,但他仍執意解釋:他說網頁是一個一個獨立的區塊組成,然後每個區塊之間又會細分方格,使元素各得其所。他說他不甚聰明,不懂怎樣打破框格讓元素在裡面游走、互涉。他跟我說了許多這些,然我自身難保,怎能幫他。
補了一會我已不能專注了;旁邊是落地玻璃,常常放空在看街上的行人。我想起我帶來了菲林相機。他奪過去端詳一番,幫我拍了一張,我又幫他拍了一張。時間尚早,他提議到城門河畔散步拍照,順道用完餘下的五張相。我想這個主意不錯。
我們走回地鐵站,穿過新城市廣場到了史努比開心世界。他說小時候會拿著婆婆給他的單據,到那裏遊船河;我則記得那裏曾有過一條長長的滑梯,現在已不見了。我們越過排隊進入圖書館的人龍,走下百步梯,經過婚姻註冊所和中央公園來到瀝源橋。沐浴在河風裡他指向家,以及讀過的中學,我卻被遠方蔚藍淡粉的天空迷著。良久我們站在那裡,望向吐露港。
這時頓覺手臂痕癢,原來是你闖上來了。我不知你看上我甚麼,但這裡沒有能夠被你銜走的事物,或許只是你不小心迷路了,走到這個不熟悉的世界。我們看著你繞過手臂一圈又一圈,誤纏進了我的手帶,在一維的世界裡永劫輪迴地成為苦行者。或許用指頭不費吹灰之力便能捏死你,我卻實在不忍心,於是把你引到欄杆上,任你走自己的路。落地後你停了,用觸角勘查周遭,又抬起頭看著我們,不知感恩還是怎樣——遺憾我讀不懂你的語言,就往橋的另一端走去。
河上有鷹盤旋,偶爾俯衝快要碰到水面時又再攀升。他說城門河是他的私密空間,偶爾有心事就會與朋友坐在河旁聊天;更多時候卻是一人,期待城門河安撫他的情緒。他顯得落寞,就如那張拍下的相片一樣。我們拐進隧道往沙田圍站的方向走去,途中他忘了路要用手機地圖指引——原來他說認路不好是真的。我搭了往大圍方向的馬鐵,剛好對面也有車,他就奔過去趕上了。
閘門關上,他倏忽就沒在人群之中,一片西裝的藍黑裡看不到粉色。我忘了照相。你則被遺在沙田的橋邊,不問世事。
※
五月九日 陰
電腦傳來收到郵件的訊號聲。
「你好。隨函附上習作五,請你閱覽。」
我把附件打開,看來學生把日記當作家課呈上了。我看不懂裡面我你他是誰,又不明舞鶴〈悲傷〉、恩培多卡勒、CS是甚麼,更無心在地圖上辨析那些地址是否真確。我在YouTube輸入「MLA 詩歌舞街」聽聽。悠揚反覆的旋律拍子中,似乎有點作祟的感覺——我好像踏進了一個迷蹤複雜的地圖,看到無花果街地上的光點閃閃,尋尋覓覓間找不到出口。火光不期然地灼上了鮮明的、難以抹滅的記號,漸漸蔓延在銅鑼灣的街巷之間,又蓋過沙田的河道。
我似乎闖進了一個不屬於我的浮城,困在一個細心刻畫的迷宮裡面,抽身不得。於是我便關上視窗——誰管你是誰。
0 notes
Text
[圖]蘋果:售後維修業務連續十幾年虧錢 在某些情況下可拒絕提供服務
訪問:
蘋果在線商店(中國)

在近日披露的蘋果書面回應(PDF)中,就談及了有關公司維修政策的特定詳細信息。委���會要求蘋果披露2009年至今的所有信息,包括蘋果僱傭了多少名維修技術人員,以及蘋果從維修服務中獲得的營收。
在回應證詞中蘋果表表示:“在蘋果零售商店和第三方零售商上,有數以萬計的蘋果授權維修技術人員在工作。自2009年以來,每年維修服務的成本支出都超過了維修業務所產生的收入。”
在委員會要求披露的信息中,還要求蘋果公佈允許蘋果授權服務提供商(AASP)網絡的維修運行模式,以及如何界定拒絕提供維修的方案(如果有的話)。
蘋果回應道:“AASP授權允許獲得和蘋果零售商店員工完全相同的修理(修理類型和產品類型)。對於無法在商店(Genius Bars和AASP商店位置)進行的更複雜的維修,Apple零售商店和AASP技術人員都可以將設備郵寄到最近的Apple維修中心。”
然後,委員會的詢問詢問了客戶得到未經授權的維修而蘋果後來拒絕維修機器的情況。
該公司堅稱:“蘋果將來不會拒絕向該客戶提供維修服務。例如,Apple不會自動拒絕顯示第三方試圖進行維修的設備的服務。類似地,存在旨在模仿蘋果正品組件功能的非蘋果正品組件,即使這些組件侵犯了蘋果的知識產權,也不會自動讓該設備失去蘋果的服務資格。 ”
但是,Apple的回應確實指出,在某些情況下,它將拒絕維修客戶的設備。
● 某些原裝組件(例如邏輯主板和外殼),已經被替換為非原裝組件。這是由於以下事實:要替換這些組件,必須拆卸設備,以至於需要特殊的工具和工藝來重新組裝設備。嘗試在未使用正確的Apple工具和流程的情況下重新組裝已拆卸的設備可能會導致客戶報告此問題。
● 將設備拆卸到一定程度後,需要特殊的工具和工藝來重新組裝設備。將Apple正品組件替換為仿冒Apple的組件之後,導致設備無法正常運行的。 (例如假的揚聲器和攝像頭組件)
● 當設備無法進行經濟維修時,與更換設備相比,維修設備將給客戶帶來更大的費用。
● 部分組件已經停產
● 旨在欺騙蘋果,故意篡改的設備
除了進行維修外,蘋果還對購買公司原裝配件的公司進行了限制,委員會詢問蘋果何時拒絕出售它們。
蘋果公司說,公司有一個獨立維修供應商計劃,公司可以申請加入。蘋果在回答中透露的唯一資格標準是,要求蘋果公司有“至少一名訓練有素的技術人員”來進行維修。
它還只會將零件出售給企業,包括個體商人,而不出售給個人(例如消費者)。它是其“ Apple原廠配件維修”計劃的一部分,該計劃的確對維修範圍進行了一些限制,但少於對被視為Apple授權服務中心的商店所施加的限制。
蘋果總結說:“由個人進行的維修很可能是未經培訓的技術人員,因此維修不遵循正確的安全和維修程序的可能性增加,並且可能導致功能,產品質量問題或安全事件發生,”
除了維修成本,蘋果還表示,自“蘋果地圖”於2012年發布以來,他們已經在此項目上投資了“數十億美元”。讓它具備更詳細的地圖數據的Maps應用程序,現已在美國27個州全面提供了改進,在6個州中提供了部分改進。
蘋果公司在整個信函中為許多政策辯護。例如,蘋果表示,出於用戶隱私和安全考慮,iOS設備上的第三方Web瀏覽器必須使用其WebKit框架。對於為何無法在iOS設備上將第三方應用程序設置為默認應用程序的問題,他們也提供了類似的理由。
.(tagsToTranslate)Apple 蘋果(t)(圖)蘋果:售後維修業務連續十幾年虧錢 在某些情況下可拒絕提供服務(t)kknews.xyz
from [圖]蘋果:售後維修業務連續十幾年虧錢 在某些情況下可拒絕提供服務 via KKNEWS
0 notes
Text
山川牧場


北海道的牛奶非常香醇,對於我這些”奶民”簡直是天堂。團友中有”奶友”,單在超市和便利店買牛奶齊齊飲已很開心,更何況是牧場直送?
川牧場是北海道名的牧場,位於七飯町,在函館駕約40分鐘便到達,剛好跟到大沼公園的方向。

到牧場當然要飲牛奶。其實雪糕也很美味,只是出發前氣管敏感,已咳嗽了數星期,唯有被迫遠離雪糕。

意想不到,山川牧場最美味是這款魷魚,連內臟一起晒乾。團友們清空了貨架上魷魚,沿途當零食。

山川牧場
地址: 〒041-1354 北海道亀田郡七飯町字大沼町628
電話: +81 138-67-2114
網站: http://yamakawabokujyo.com/
Map Code:86786263*40
https://goo.gl/maps/4zdEK9soqGr3via76
在日本途上 http://japan.paul…
View On WordPress
0 notes
Text
除了async速度翻10倍 JavaScript 還帶來了什麼?
Ecma TC39 管理著 ECMAScript 生態的發展,它是當前 JavaScript 語言背後的標準,谷歌 V8 團隊一直積極參與 JavaScript 相關標準化工作。
V8 是谷歌開源的 JavaScript 引擎(同時也是 WebAssembly 引擎),前面提到的 Chrom、Node.js 與 Electron 等平台都基於 V8。同時除了 Chrome,基於 Chromium 的一系列 Web 瀏覽器,如 Opera 與即將正式發布的 Microsoft Edge 在底層也基於 V8。
在前幾天的 Google I/O 2019 上,V8 團隊的 Mathias Bynens 與 Sathya Gunasekaran 分享了 JavaScript 的最新研發進展。
V8 團隊表示,他們的使命是要領導現代JavaScript 與WebAssembly 高性能,值得關注的是,分享者用了“real-world”描述性能,並介紹所謂“real-world performance”是與那些單純為了benchmark 數據的性能相對的,谷歌強調想要達到的是實際上在現實生活中能夠做到高性能的效果,而不是那麼“出世”。
他們舉了幾個例子。自 Chrome 61 以來,V8 團隊將原始 JavaScript 解析速度提高了一倍,這些數據是在真實網站上測試得到的。同時他們已經成功從主線程中移除了 40% 的解析和編譯工作,網頁啟動變得更加順滑。
除了 Chrome,速度提昇在 Node.js 中也有很明顯的體現,Node.js 12 相比 Node.js 7,async 速度提升了 10 倍,Promise.all 速度提升了 12 倍。
解析速度與運行時性能提高之外,內存佔用也減少了,Chrome 70 到 Chrome 76,Android 上運行實際 Web 應用的內存消耗減少了 20%。
接下來演講者分享了 JavaScript 的一些新特性,涵蓋內容很多,下邊簡單介紹幾個比較有意思的特性:
使用方言口語化顯示時間短語 API
這是眾多新 Intl.* API 中的一種,也是觀眾討論比較多的一個特性,Intl.* 是指國際化特性。
我們日常生活中提到時間的時候會說“上週”、“上個月”與“42 秒前”等口語,使用新的 Intl.RelativeTimeFormat() 函數,程序可以使用特定語言返回這些短語,而不是方方正正的“one week ago”、“one month ago”和“42 seconds ago”。
演講者使用英語與泰米爾語演示了該功能,效果如下:
目前該功能支持秒、分鐘、小時、天、週、月與季的短語表示,並且支持多種語言(不清楚有沒有中文支持),開發者不再需要維護一個專門的相對時間短語列表。
globalThis
想要編寫適用於不同平台的JavaScript,不管是Node.js 還是Web 瀏覽器,都需要有相應的代碼來適配全局“this”,比如Web 瀏覽器,需要使用“window”來判斷,但在“ window”不可用的情況下,還需要用“self”檢查,在Node 中可以用“global”判斷,但如果是獨立的 JavaScript shell 環境,那情況又有變化。
環境因素很複雜,各種平台環境需要進行繁雜的適配過程,這對於開發者來說會很痛苦,所以V8 團隊新增了一個“globalThis”特性,它可以在不依賴環境的情況下,輕鬆訪問全局“this”。
目前 Chrome、FireFox、Safari 與 Node.js 都已經支持該特性,同時對於 polyfill 與其它需要全局訪問“this”的庫也適用,從這一點來說該特性是一個比較大的改進。
WeakRef
通常JavaScript 中對象引用意味著只要對對象進行了引用,那麼它就不會被GC,而弱引用中,如果其它對像都不再引用該對象,那麼GC 機制會自動回收該對象所佔用的內存,不考慮該對像是否還在該引用的結構中。
目前 JavaScript 中有 WeakMap 與 WeakSet 兩個弱引用方法,只要將對象添加到 WeakMap 或 WeakSet 中,GC 在觸發條件時就可以將其占用內存回收。
WeakRef 是一種更加高級的 API,它提供了一個進入對像生命週期的窗口,可以解決 WeakMap 僅支持 object 類型作為 Key 的場景。
演講者以緩存圖像為例,map 會鎖住圖像的 Key 與 Value,這樣圖像名和圖像數據就不會被 GC,因為它一直被引用著。另一方面,弱引用 WeakMap 在這裡並不會起作用,因為圖像名是一個字符串類型,而 WeakMap 規定其 Key 只能為 object 類型。
WeakRef 通過直接緩存圖像對象的方法來解決這個問題,圖像名作為 Key,WeakRef 弱引用作為 Value 存儲在緩存中。但這會帶來另一個問題:因為圖像名是 Key,那 map 仍然會一直保留著這些圖像名字符串。理想的情況是這些字符串也要被 GC。
WeakRef 的解決方案是引用一個新的 API “FinalizationGroup()”,註冊一個回調函數,在 GC 觸發時從緩存中刪除前邊提到的“殘留的圖像名字符串”。
除了這幾點,新的 JavaScript 語言特性還包括:
class fileds 可以直接在 class 中初始化變量而不用寫在構造函數中
私有 setter 與 getter
String.matchAll 可以進行正則多次匹配
提高數字可讀性,numeric seperators 可以在寫數字的時候使用“_”作為分隔符
新的大數字類型 BigInt
新增一些 Intl.* API,也就是用於國際化的 API,比如 Intl.NumberFormat 本地化格式化數字顯示,Intl.RelativeTimeFormat() 與 Intl.DateTimeFormat() 本地化顯示時間
頂級 await,無需寫 async
新的 Promise 函數 Promise.allSettled() 與 Promise.any()
具體內容可以查看演講視頻:
youtube
.(tagsToTranslate)軟件和應用(t)除了async速度翻10倍 JavaScript 還帶來了什麼? (t)cnBeta from http://bit.ly/2vUp169
0 notes
Text
2019 ESI小學天才冬令營-小四生的學習心得
※這五天來ESI天才冬令營讓我知道許多關於抓重點的訣竅,可以讓我遇到需要抓重點時可運用它,像我以前不會抓重點,運用這些後我就可以又方便又輕鬆的抓重點,經過這些教導後,我的未來就有進一步的希望了!比如我以後也可以在去教別的小朋友如何抓重點讓他們在繼續傳承下去。(小四生-陳雅妤)
※這五天來老師增加我們的知識,過去我不喜歡讀書,但我很想成為醫生,這樣才能救我的家人,但我不喜歡讀書,可是來上了ESI天才冬令營的課後,我相信我可以成為醫生,我相信,我可以做到。(小四生-黃浚溥)
※自從來ESI冬令營這裡上課後,就覺得以前背東西是一件非常困難的事情,現在背東西就變得非常簡單,未來我就可以非常快的背起老師教我的所有東西,就永遠不會忘記了,真的很謝謝老師的教導。(小四-賴品竹)
※這五天來ESI冬令營,一開始我受到了許多挫折,上次我的隨堂考試的成績非常的不好,因為我沒有複習。昨天,我抽了一些時間複習,果然我的分數非常的好,原來失敗是成功之母,希望以後我要學���這個教訓,不偷懶。(小四生-陳采韵)
※每次一到下課,我就在走道上跑來跑去,直到老師叫我們第二次的時候我才停止不奔跑,我覺得我很不應該,我很開心在ESI天才冬令營這個班上,我希望下次我在到這個冬令營讓老師有更好的印象,到這個冬令營後,我覺得我的作文變強了,對我的未來有很大的幫助,我很開心。(小四生-鍾秉學)
※這五天來ESI天才冬令營,我學到了許多輕鬆考高分的圖像記憶法,我以前都不知道可以這樣背,也不知道這樣背可以那麼容易就記起來,這五天來的隨堂考也讓我更加深印象對所有的輕鬆考高分的圖像。(小四生-謝函蓁)
※這五天我學到了很多東西,一點小知識都能帶給我很大的幫助,我不只學到了讀書方法,還學到了考試的小秘訣,媽媽說:「這個ESI天才冬令營對妳的未來很有幫助。」「未來」?我從來就沒想過這件事,高中、大學的考試就靠這個冬令營!如果沒有這個冬令營的話,未來就不好過了,工作也不好找!所以我要謝謝這個冬令營!(小四生-賴禹蒨)
#ESI小學天才冬夏令營
#台北冬夏令營
#新竹冬夏令營
#小學冬夏令營
#兒童冬夏令營
#小學寒暑假班
#兒童寒暑假班
#快速超強圖像記憶法
#心智圖mind map
#讀書方法技巧
#學習方法技巧
0 notes
Text
JavaScript概論IX

延續探討
陣列函數
Array.forEach(function callback(currentValue[, index[, array]])
函數說明:列舉出列所有內容並執行callback的內容。
傳入參數說明:
callback:列舉每個陣列內容時執行的一段程式。
currentValue:目前列舉出來陣列內的資料內容
index:目前列舉的陣列內容位於陣列的位置
array:該列舉的陣列
範例:
var data = [1,2,3,4,’nas’];
var sum = 0;
data.forEach(function(value){sum += value;});
console.log(sum);
data.forEach(function(v,i,a){a[i] = v+1;});
console.log(data.toString());
說明:第一行宣告一個data陣列,並賦予陣列內容[1,2,3,4,’nas’],接下來第二行宣告sum變數給予數值0,第三行使用了data陣列forEach執行了帶入callback程式片段的功能,所以forEach會開始按照陣列順序列舉陣列的資料並執行callback程式片段,第一次列舉出陣列的第一個值1所以sum+=1的結果,目前sum=1,第二次列舉出陣列的第二個值2所以sum+=2的結果,目前sum=3,第三次列舉出陣列的第三個值3所以sum+=3的結果,目前sum=6,第四次列舉出陣列的第四個值4所以sum+=4的結果,目前sum=10,第五次列舉出陣列的第五個值’nas’所以sum+=’nas’的結果等於sum=sum+’nas’,目前sum=’10nas’,第四行顯示目前sum的��會顯示’10nas’,第五行使用了data陣列forEach執行了帶入callback程式片段的功能,所以forEach會開始按照陣列順序列舉陣列的資料並執行callback程式片段,第一次列舉出陣列的第一個值1所以會執行data [0] = 1+1,這時data[0]會變為2,第二次列舉出陣列的第二個值2所以會執行data [1] = 2+1,這時data[1]會變為3,第三次列舉出陣列的第三個值3所以會執行data [2] = 3+1,這時data[2]會變為4,第四次列舉出陣列的第四個值4所以會執行data [3] = 4+1,這時data[3]會變為5,第五次列舉出陣列的第五個值’nas’所以會執行data [4] = ‘nas’+1,這時data[4]會變為’nas1’,第六行輸出data陣列結果為[2,3,4,5,’nas1’]
Array.map(function callback( currentValue[, index[, array]])[, thisArg])
函數說明:列舉出列所有內容並執行callback的內容,並回傳新的陣列。
傳入參數說明:
callback:列舉每個陣列內容時執行的一段程式。
currentValue:目前列舉出來陣列內的資料內容
index:目前列舉的陣列內容位於陣列的位置
array:該列舉的陣列
thisArg:執行callback的this值
範例:
var data = [1,2,3,4,'Message'];
var qq=data.map(x=>x+1);
console.log(qq);
var d2 = [2,3,4,5,’nas’];
qq = data.map(function(x,y,z){return z[y]+this[y]},d2);
console.log(qq)
說明:
第一行宣告一個data陣列,並賦予陣列內容[1,2,3,4,’Message’],接下來第二行宣告qq變數,將data.map(x=>x+1);的結果回傳給qq變數,data.map(x=>x+1)相當於data.map(function(x){return x+1});,所以map開始列舉後第一次列舉出陣列的第一個值1所以會執行return 1+1,所以目前map所製造的回傳陣列為[2],接下來列舉出陣列的第二個值2所以會執行return 2+1,所以目前map所製造的回傳陣列為[2,3],接著是列舉出陣列的第三個值3會執行return 3+1的程式,能看出目前map所製造的回傳陣列為[2,3,4],第四個列舉出陣列的第四個值4將會執行return 4+1,目前map所製造的回傳陣列為[2,3,4,5],接著最後列舉出陣列的第5個值’Message’所以會執行return ‘Message’+1,所以最終map所製造的回傳陣列為[2,3,4,5,’Message’],並回傳給qq變數,第三行顯示目前qq變數值為[2,3,4,5,’Message’],第四行宣告一個d2陣列,並賦予陣列內容[2,3,4,5,’nas’],接下來將qq變數變更為data.map(function(x,y,z){return z[y]+this[y]},d2)的回傳結果,先來介紹callback function內的參數值z為data陣列,y為目前陣列的列舉位置,this值為thisArg所以this等於d2,接下來map列舉第一個值為data[0],所以y等於0,所以回傳會等於data[0]+d2[0]=1+2,目前map所製造的回傳陣列為[3],接著map列舉第二個值為data[1],所以y等於1,所以回傳會等於data[1]+d2[1]=2+3,目前map所製造的回傳陣列為[3,5],接著map列舉第三個值為data[2],所以y等於2,所以回傳會等於data[2]+d2[2]=3+4,目前map所製造的回傳陣列為[3,5,7],接著map列舉第四個值為data[3],所以y等於3,所以回傳會等於data[3]+d2[3]=4+5,目前map所製造的回傳陣列為[3,5,7,9],最後map列舉第五個值為data[4],所以y等於4,所以回傳會等於data[4]+d2[4]='Message'+’nas’,最後map所製造的回傳陣列為[3,5,7,9,'Messagenas’],[3,5,7,9,'Messagenas’]會回傳給qq變數,最後一行qq變數的輸出值就會是[3,5,7,9,'Messagenas’]。
參考:JavaScript大全(ISBN:9789862764411)
0 notes
Text
雲函數中使用Python-ORM: Peewee
前言
ORM(Object Ralational Mapping,對象關係映射)用來把對像模型表示的對象映射到基於SQL的關係模型數據庫結構中去。這樣,我們在具體的操作實體對象的時候,就不需要再去和復雜的SQL語句打交道,只需簡單的操作實體對象的屬性和方法。 ORM技術是在對象和關係之間提供了一條橋樑,前台的對象型數據和數據庫中的關係型的數據通過這個橋樑來相互轉化。
在傳統的開發過程中,無論是Java還是Python抑或Go,Nodejs等,都會有自己對應的一些工具,讓我們可以快速、簡單的使用數據庫。以Python為例,Django是常見的Python Web框架,其提供的ORM組件就是非常方便的。除此之外,Python語言還有很多常見的ORM工具,例如SQLObject、Storm、SQLAlchemy以及peewee。
本文將會通過在雲函數中使用peewee,來進行簡單的操作,將POST請求中的某些參數存儲到數據庫中,再讀取出來。
入門peewee
Peewee是一個簡單小巧的Python …
from 雲函數中使用Python-ORM: Peewee via KKNEWS
0 notes
Text
Vue.js 框架第三版源碼公佈
(說學不動的童鞋抓緊剩餘的國慶假期擼一遍源碼吧 : D)
穩定版的具體發佈時間尚未提及,不過根據 Vue 在 GitHub repo 公開展示的 Roadmap,後面應該還會發布 Alpha(計劃於 Q4 發布)、Beta 等版本,所以至少要等到 2020 年第一季度才有可能發布 3.0 穩定版。
尤雨溪在去年發表的“Vue 3.0 Updates”主題演講中曾強調過 Vue 3 包含的五個關鍵變化:
速度
體積
可維護性
面向原生
易用性
下面了解一下針對 Vue 3 計劃並已實現的主要架構改進和新功能:
編譯器(Compiler)
使用模塊���架構
優化 “Block tree”
更激進的 static tree hoisting 功能
支持 Source map
內置標識符前綴(又名 “stripWith”)
內置整齊打印(pretty-printing)功能
移除 source map 和標識符前綴功能後,使用 Brotli 壓縮的瀏覽器版本精簡了大約 10KB
運行時(Runtime)
速度顯著提升
同時支持 Composition API 和 Options API,以及 typings
基於 Proxy 實現的數據變更檢測
支持 Fragments
支持 Portals
支持 Suspense w/ async setup()
最後,還有一些 2.x 的功能尚未移植過來:
服務器端渲染
Compiler DOM-specific transforms
v-on DOM 修飾符
v-model
v-text
v-pre
v-once
v-html
v-show
對了,還有與瀏覽器兼容性方面的問題,雖然去年尤雨溪曾提出會支持 IE11,但目前發布的 Pre-Alpha 版本打包後的代碼是 ES2015+,並且【尚未】支持 IE11。
至於與舊版本的兼容情況,因為 Vue 3.0 是主要版本,所以會包含一些重大變更。不過,開發組會非常重視兼容性問題,他們也將盡快開始傳達這些重大變更,並做了這樣的保證:除了渲染函數API 和作用域插槽語法之外的所有內容都將保持不變,或者通過兼容性構建讓其與2.x 保持兼容。
總的來說,Vue 3.0 雖然會對頂級 API 進行重大的修整,但依然會保持與 2.x 的兼容。此外,2.x 的最後一個次要版本將成為 LTS,並在 3.0 發布後繼續享受 18 個月的 bug 和安全修復更新。
訪問:
阿里雲 – 最高1888元通用代金券立即可用
.(tagsToTranslate)網絡應用(t)Vue.js 框架第三版源碼公佈(t)kknews.xyz
from Vue.js 框架第三版源碼公佈 via KKNEWS
0 notes