標籤: 收購3c

  • 印度政府宣布向Tata Motors採購1萬輛電動車

    印度政府宣布向Tata Motors採購1萬輛電動車

     

    Thomson Reuters報導,印度政府9月29日宣布向Tata Motors Ltd採購1萬輛電動車、未來3到4年將用來分批汰換原有的公務車。Tata Motors將自11月起分兩階段供應電動車。印度政府約有50萬輛公務車。

    英國最大汽車製造商Jaguar Land Rover(Tata Motors子公司)9月7日宣布,2020年起旗下所有新車都將具備電動或油電混合驅動選項。英國跟隨法國以及馬德里、墨西哥城和雅典等城市的抗空汙腳步,7月宣布將自2040年起禁止販售汽油和柴油新車。

    livemint.com 9月30日報導,Tata第一批電動車將在今年11月交送給印度政府旗下合資企業「能源效率服務有限公司(Energy Efficiency Services Limited;EESL)」。

    (本文內容由授權使用。圖片出處:public domain CC0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 為什麼人們熱愛張小龍?

    為什麼人們熱愛張小龍?

      文/周掌柜

      來源:周掌柜(ID:zhouzhanggui525)

      “萬物之中,希望至美”當張小龍用這句話結束微信公開課演講的時候,很多人意猶未盡。

      不可否認,微信已經成為騰訊和用戶之間最大的公約數,張小龍更像一位“技術之神”守護着 10 億人每天都會打開的微信,守護着騰訊的未來。

      但另一側面,除了每年的公開課分享,用戶沒有太多的機會可以感知到他,也沒有人討論他。他說的語言不如李彥宏有未來,不如馬雲有格局,也不同於馬化騰更關注大變革,他不是超級大佬,但沒有人會忽略中國互聯網這位獨特的存在,甚至擁有更多的期待。他並不是一位專業的佈道者和演講者,但他的演講讓人充滿溫暖,多少打消了很多人對騰訊“老齡化“的慣性憂慮。

      張小龍 2018 年的演講時常斷斷續續,一會兒喝水,一會兒停下來思考,還有時候一個頭緒扎進去出不來。

      2019 年不太一樣,看得出是經過系統的梳理,對微信的即時通訊、小遊戲、小程序、訂閱號等都有系統的思考和闡述,近 4 萬字的內容傳播到朋友圈的時候,雖然大部分人都沒有認真看完,但從質樸的語言里都能感受到善良和誠意,而這,或許和張小龍心中對騰訊戰略挑戰的思考有關。

      不可否認,騰訊已經從成功的中年人進入對“老齡化“的恐懼之中,微信雖然仍如孩子般的讓人喜愛,但用戶已經失去了當初對其顛覆式創新的怦然心動。

      如果一定要概括小龍這次演講如此清新簡潔的系統性表達,背後也可以抽象出三個線索: 

      第一個關於“本質“,他幾乎對每一個橋段的敘述都從初心到溯源進而強化了對本質的認知,比如,他說:“朋友圈本質上是一個什麼,朋友圈其實開創了一個新的社交的場所,其實它不止是一個時間流。我把它比方成一個廣場“;

      第二個關於是“常識”,他不斷強調和用戶互動過程中受到的啟發,以及自己和微信團隊抵抗住了 KPI、情緒、眼前潮流的誘惑如何尊重常識,比如,他說:”可能在遠古的時候,如果人都是一個一個個體的話,他是沒有社交的,當人類成為一種群居的動物的時候,原始的社交就產生了“,這背後是對廣泛用戶需求的常識性理解;

      第三個關於“大邏輯”,演講中對大邏輯的闡述非常多,其中最大的邏輯我們姑且概括為”朋友哲學“,他說:“如果微信是一個人,它一定是你最好的朋友,你才願意花那麼多時間給它”。可見,小龍用“交朋友“的大邏輯理解對於微信細節功能的每一個決策。

      以上的這個提煉,其實從張小龍的世界觀中一定是違背了他娓娓道來的初衷,但從我們戰略顧問分析的角度,也許有助於形成可以借鑒傳承的樸素方法。但,張小龍反對的其實都是騰訊的組織現在廣泛存在的。

      當然,本文最大的一個初衷,或者說“原動力”是——理解張小龍的世界!在這個時間點重新品讀張小龍和微信,還有兩個特別有價值的視角:

      其一是對騰訊這家中國領先的超大型互聯網公司對智能時代的理解,小龍談 AI 並不多,卻可以清晰的感知到微信進化的 AI 思維;

      其二是對騰訊這家公司最近半年股價跌宕起伏的股價表現看,微信所代表的騰訊未來,更加值得關注。

      最新数字显示:微信的日登錄量超過 10 億,這確實是一個特別大的里程碑,這可能是國內歷史上第一款 App 有 10 億 DAU 的數量級。從這個角度上看,未來最有可能在互聯網領域抵抗頭條系進攻的不太可能是一個橫空出世的新產品或另一個小龍,最大概率是微信的重生。“神化“張小龍有點接近吹捧,可他依然和必然性需要具備一種神性的思考,才能引領微信的未來,引領用戶的預期,才有機會讓騰訊真正無縫進入下一個嶄新的智能時代。“技術之神”的回歸也是用戶對騰訊最大的期待。

      在以上粗線條的勾勒下,周掌柜戰略諮詢的多位合伙人,通過對最近幾年張小龍微信公開課的演講分析(尤其這次),結合我們近兩年對騰訊員工的深入訪談,努力感知他質樸、純粹和清澈的語言,力求給大家呈現張小龍更系統的 “微信哲學“以及對騰訊未來的思考和展望。客觀講,縱使他的”神性“思維涉及吹捧,但微信背後的騰訊確實需要重回神聖之地,需要類似小龍和更多小龍去點亮未來。

      1

      張小龍的微信哲學

      小龍最開始就解釋了“初心”和“原動力”的關係,他似乎總覺得“初心”無法表達自己,“原動力”更接近於客觀事實。的確,“初心”是未經進化的意願,“原動力”更符合從無到有、從邊緣到中心的成功路徑,這非常客觀。

      他的“原動力”很簡單:

      第一,堅持做一個好的,與時俱進的工具。

      第二個原動力是,“讓創造者體現價值”。

      在筆者 2016 年 6 月發表於英國《金融時報》中文網的文章《張小龍的星空里》,描述了一脈相承的線索:1969 年 12 月出生,傳說中最花心的射手座(這也可能是其藝術氣質的某種來源);1987 年到 1994 年在華中科技大學電信系從本科讀到碩;1997 年,也就是畢業 3 年後,他發布了 Foxmail 這款經典的郵箱軟件,經過多次叫賣不成之後(包括 15 萬被雷軍拒絕),2000 年以 1200 萬的價格賣給了博大公司;2005 年騰訊收購了 Foxmail,張小龍加入騰訊任廣州研發部總經理;此後又負責 QQ 郵箱,2010 年申請立項開發微信。

      這次演講中,張小龍同樣提到了延續以往經歷的思考,他說:“在微信上線之前的一年裡,我們把 QQ 郵箱做到了國內第一名,然後在郵箱裏面又做了很多嘗試,包括漂流瓶等等,包括我花了一年多的時間折騰的郵箱裏面的閱讀空間”。這個原動力確實一脈相承的,他在過去的十幾年裡依然秉承着兩個深植於內心的原動力,時間沒有讓他的原動力發生改變。他提到:“原動力其實應該是內心深處的一種認知和期望,它很強大,以至於可以堅持很久,克服很多困難去達到它”。隱約,我們也可以感知演講背後的十幾年沉默中,他並非是高歌猛進的成功,而是堅持和克服困難,包括騰訊組織的摩擦力,渴望更完美的自己。

      下錶我們通過與他提到的德國產品設計師迪特·拉姆斯(Dieter Rams)的對比,進一步分析他的微信哲學,如表:

      張小龍作為微信產品的主要功能和體驗設計師,受微軟、蘋果等品牌深刻影響,在中國互聯網行業獨樹一幟的形成超越商業的產品思維。

      他對好的產品的感知特徵是:

      1. 好的產品是自己會說話,盡可能產品說話,而不是解釋很多東西;

      2. 好的產品是最好的工具,關注於對錯的是非價值主張,而不是利益最大化;

      3. 好的產品圍繞用戶想象力感知,沒有標準答案;

      4. 選擇的權力交給用戶。不左右哪些服務是用戶有用的,公眾號就是這個思路,系統沒有推薦;

      5. 把用戶當朋友,而不是聽從驅使的群體。

      他的產品價值觀是

      1. 大人談利益,小孩子談對錯,利益出發,產品越走越偏,成為利益堆砌,失去產品最本質的東西;

      2. 所有努力一個目標,尊重用戶,尊重個人;

      3. 用外掛打了很多分,朋友誠信的角度是有問題的。外掛的行為破壞系統規則,讓規則失效了。尊重用戶。沒有騷擾信息,沒有聊天記錄保留,不做任何誘導行為;

      4. 故意感動人也是挺不尊重他的表現;

      5. 關注效率。小程序和小遊戲:用完即走,走了就回來。工具是完成任務,越高的效率越好;

      6. 超越短期功利主義:很多業界的產品經理會被自己所在的公司誤導。因為公司的目的是要流量要變現,所以大家的 KPI 就是如何產生流量如何變現,這是短視的。

      在產品體驗上,他特意提到了“尊重”兩個字,滲透着濃濃的用戶思維和人文思考;在品格方面,他提出不能“機會主義”,不為任何一個風口做事情。應該說以上一系列的梳理和提煉,都可以清晰感知他已經擁有了一套系統的方法論,這些方法論看似瑣碎,但其實更多的是在技術應用中融入到每一個功能裏面,充滿了產品主義的匠人精神。

      小龍對於小程序的表達,尤其經典,他說:“小程序是信息的組織方式和信息的載體,小程序最終的目的代表接觸到的任何事物背後的信息,以及對背後信息的訪問方式”。這種表達方式不僅犀利,而且可以感知到他對信息論、宇宙學的深刻理解,當今世界最前沿的物理學家,幾乎都是用信息的角度理解物質世界的,和他提到的陽明心學異曲同工,充滿思辨

      應該說這些微信哲學的提煉,是他多次演講中最精彩的部分,當然,單純從微信的角度看這是已經被證明的成功,可如果放大到整個騰訊或許微信的成功並沒有為全局注入面向未來的新動能。

      2

      張小龍潛在的思維局限

    但這次演講並不完美。

      愛打遊戲的張小龍,對小遊戲的娓娓道來,讓人似乎回到了 20 年前那個深處陋室執着締造產品的年輕人。他說自己打“跳一跳”到 6000 多分的時候被系統命名為“無聊大師”,到 6000 多分得到稱號——立地成佛。非常生動和有趣。可背後則是微信對騰訊遊戲業務產生很少的貢獻。

      回歸他的初衷:小遊戲一定是放鬆的手段,讓自己平靜,普通人心跳加速和更緊張的狀態不太對。他懷疑 3000 多分用戶真實性的時候,特意準備了禮品,讓他們來辦公室當面打,見證這個遊戲里進步的速度有多快。進而他升華的評論說:”玩一個小遊戲是微信的正經事。跳一跳是微信做的一個實驗”。這樣鮮活的管理方法,其實很難讓人跳出來對應這位年薪億級,管理 10 億用戶應用的大老闆。這些都是遠遠偏離正統的管理思維的,也許和騰訊這家逐漸成熟的超級巨頭的管理文化也不太匹配。但這恰恰是微信團隊的競爭力之所在,他們很好的解決了創業思維和繁複管理架構的矛盾,一如既往的追隨用戶,解決問題。但不由得讓人們追問:微信思維究竟實際的對騰訊大組織有多少推動?

      這確實是一個真問題。

      坦率地說,這次張小龍的分享,我們結合過去來看,除了那種久違的親切和價值,也隱含折射出微信和騰訊某些潛在的風險和危機:

      · 遠離年輕人的風險:當初的小馬哥已經 49 歲,雖然公眾依然可以回憶起他當初做 QQ 的樣子,一如既往的對他表示尊敬。但確實騰訊的高管團隊,包括張小龍在內已經不在年輕。對於這次張小龍讓人鼓掌的分享,近乎完美,但也已經遠離了年輕人執念、莽撞的質感。小龍並沒有特意提到年輕人的需求,這或多或少讓人失望;

      · App成功觀念的固化:這種固化其實是是雙刃劍,前面我們也提到了傳承初心,但硬幣的另一面就是路徑依賴,特別是成功路徑依賴。比如對比今日頭條,騰訊微視跟隨的非常緊密,也做的非常好,但似乎一直沒有超越。頭條系的核心技術邏輯是 AI 的中心化,這和小龍多次提到的去中心化有着觀念的差異。即使我們無法評價其好壞,但智能時代的智能聚集是否天然具有中心化的要素?這些顛覆思維對微信的衝擊是顯而易見,註定也是風險;

      · 信息顆粒度認知的慣性思維:微信的訂閱號、看一看、搖一搖、小程序、小遊戲,實際上這些都是基於信息的文字、語音、圖片顆粒度的產品設計為主,但抖音的基礎小視頻,正在成為年輕人最大的趨勢。微信在短視頻這樣的創新信息顆粒度如何發力?5G 時代一定是一個迫切解決的問題。甚至包括基於 AI 和視頻結合的新型智能化圖形界面是什麼形態?能否想經典電影《HER》(她)裏面描述的是一種中央智能的人機對話?這關乎微信的長遠未來。

      · 企業微信認知遠離組織:小龍提到企業微信將來要做的一個方向,“相信對企業有很大的吸引力,因為它可以讓每個員工可以直接提供服務”,這很真誠,但本質還是 2C 思維的認知,企業更多的應用場景使用基礎都是組織協作,和單純 2C 思維的信息傳遞是有很大不同的,所以在企業場景中,阿里等公司能否後來居上,或者割據一方,都是微信面對的問題;

      · 缺少科技研髮型創新基因:這一點對於張小龍來講近乎苛求,但當微信發展到現在的規模,理論上是需要突破應用層面做很多通訊、AI、大數據、智能硬件、手機交互、Iot 連接技術平台等底層的研發級擴展,微信的想象力對於騰訊全局而言目前還僅僅停留在 App 的成功,這不免是一個遺憾。相對於騰訊最新的組織結構變革,微信是存在於研發創新矩陣邊緣的帝國,這是違背戰略常識的,為何不在微信內部去組織研發?

      · 更核心的一個挑戰在於小龍人本思想的通用性:之前我們把以人為本的社會形態定義為“碳基文明”,而把智能時代以信息技術定義為“硅基文明”,如果套用這個分類,微信是在碳基文明的人本主義和硅基文明的智能至上中間的一種形態。小龍定義為以人為核心的“工具”,人的“工具”。但未來趨勢是否硅基文明不需要工具,同時擁有生命?這個追問看似很《三體》,但確實一個進化的大邏輯。騰訊雖然在多個場景都在應用 AI,但顯然對於 AI 的用戶層面的創新和展現缺少新意。

      面對小龍精彩的演講,我們有了很多海闊天空和雞蛋里挑骨頭的觀點,這其實也違背周掌柜諮詢的多位合伙人對騰訊的尊重。這些註定不是眼前挑戰,談不上批評,更多是我們被帶入和感染之後的一種回饋。

      3

      張小龍與騰訊的未來

      在小龍的演講中,其實沒有提到太多大騰訊的未來,這應該不是他最關心的,但不可否認從若干語言線索中,流露不少真誠的看法。

      目前騰訊總體的情況是這樣的:

      1. 基於產業互聯網的未來方向其實具備高度的不確定性,不僅是對雲、智能、Iot 的理解上騰訊缺少經驗,對於所謂產業互聯網如何支撐巨頭進化,實際上並沒有給出具體的業績支撐。而產業互聯網和消費級互聯網最核心的一個差別是“矩陣式研發”,這和互聯網靈活的基於用戶使用數據迭代邏輯完全不同。還涉及到嚴密系統的研發管理,華為、平安等技術創新能力強的公司都是用了 10 年甚至 20 年的時間構建的技術管理體系,騰訊看似一直在互聯網的前沿,但和科技研髮型企業差距甚大;

      2. 最新調整的戰略架構,明顯是從創業早期的野蠻生長“賽馬”體系向組織協作演進。這是必須和迫切的,一位騰訊高管訪談中表示:騰訊內部重複競爭、資源浪費、部門牆嚴重到讓人不敢面對,一個支付功能背後曾有 4 個團隊同時在做,應用於不同場景,而且研發的基礎框架內部都沒有開源共享。這個問題很多人在內部論壇問馬化騰,他也僅僅給出了:“重複創新有利於把握機會”這樣一個過於簡潔的回答,依然是互聯網思維的“找機會”邏輯。一個遊戲業務線,很多遊戲定位在 PK 競爭引導下高度同質化,缺少創意。創業組織架構中,對領軍者的億級巨額激勵,對應輔助團隊成員的杯水車薪,長期帶來了一種不利於組織協作的激勵不平衡。這些讓騰訊兩個部門之間的溝通甚至比騰訊與其他公司溝通還要繁瑣,甚至出現很多業務不願意在公司內採購服務的極端現象。而騰訊的 CEO 馬化騰和總裁劉熾平是兩條線平行管理公司,這從某種程度上體現了大股東的資本意志,從其組織變革中也可以清晰的嗅到投行思維,說“金融綁架”騰訊是缺少根據的,但是多位香港金融背景高管帶給騰訊的肯定不是技術思維,這可以肯定。於是,註定對於本來就應該技術驅動的騰訊來說,無異於閹割了其技術引領的可能性,這也被一些持批評態度的媒體認為是 Tony(張志東 )之後騰訊一直沒有 CTO 的原因;

      3. 面對頭條系在 AI 算法新聞平台以及抖音短視頻平台,還有後面一系列火山視頻等競爭的格局下,騰訊衝鋒的團隊似乎少了歷史上攻城拔寨的銳氣,其投資的騰訊系中也始終沒有出類拔萃的“小頭條”出現。這導致騰訊一直沒有能真正在 AI 平台和短視頻這兩個戰略機遇點上翻盤,對於關心騰訊的人來說,前沿的引領性、技術的引領性是遠遠大於遊戲業務政策起伏的影響,騰訊的“命根子”正在被挑戰,而且看不到逆轉的跡象。雖然 2019 年出騰訊宣布成立技術委員會,下決心對組織架構下狠手,但背後缺少的功課非一日之功,能找到統領技術研發框架的人才也並不容易,這還不算技術管理和組織管理可能聘請外部諮詢公司重構的難度。這些都是小龍這次質樸演講的大背景,也很難讓我們不對其創新思維賦予更高的意義。

      小龍有不少有趣的回顧,多少與此相關:

      其一關於“眼球經濟”,他說:“停留時長讓我聯想到 2000 年左右,當時互聯網剛起來,流行的一個詞叫眼球經濟。所有的網站目標都是要獲取盡可能多的眼球注意力”。進而評論道:“我們期望並不是我們要獲得更多的現金的回報,而是現狀是這裏面真正高質量原創的遊戲還不是特別多“。

      其二談到 KPI,他說:”用戶迷信保健品,我們就推保健品的文章。如果從 KPI 的角度,這樣是最容易完成 KPI 的。但是如果我們推薦給用戶新的知識,用戶會離開的。因為惰性是人共有的特性。沒有人願意主動去學習新知識,去傷腦筋啊“。

      雖然,對於這些誠懇的回顧,我們去過度聯想顯得不太厚道,但客觀講,KPI 正是騰訊這艘大船這些年航速變慢的原因,騰訊似乎悄悄的從對用戶負責開始向股民負責,失去了想象力和進攻性;而眼球經濟,正是目前騰訊面對低迷股價所反思的,一位騰訊前公關負責人說:“在和阿里打嘴仗的時候,我們投資了那麼多的媒體,但是關鍵時刻竟然不知道如何回應。馬化騰的很多發言稿都是臨時抱佛腳,頭一天晚上改來改去,也談不上戰略的溝通和傳承”。這些都是騰訊不為人知的另一個側面,如果“KPI 綜合症”和“眼球經濟短視症”得不到徹底消除,對於通過近乎美式公司的組織架構以及麥肯錫式的戰略方向,疊加投行式的精細化財務管控,騰訊是否有更美好的未來? 

      而不可避免的,騰訊的挑戰和壓力也必然傳達到微信團隊身上。細心的用戶已經發現從騰訊股價 2018 年下半年收到挑戰之後,微信的朋友圈廣告質量降低,並且明顯增多。這雖然依然在可以理解的範圍內,但不可否認微信承載了騰訊這艘大船的業績壓力。而正如小龍所言,小遊戲低於預期,那麼微信如何推動騰訊傳統第一大遊戲收入來源重拾增長呢? 

      過度的對比張小龍和馬化騰,並不厚道。就像對比馬雲和阿里 CTO 誰更懂技術一樣。但這背後的一個很大的問題在於:騰訊到底是要培養出更多的張小龍?還是培育出更多的賺錢業務?而或通過培訓新的張小龍帶來新利潤?

      目前騰訊並沒有清晰的戰略指向,外界看到的還是一家強悍、偉大但已經沒有傳奇的公司,內部人看到的是 KPI 和業績壓力下的低效以及大公司病。沒有傳奇,就已經低於大部分用戶和公眾對騰訊的預期,而孵化傳奇一定不是簡單的“產業互聯網”和“組織架構變革”能達到的,沒有一個圍繞技術天才的創新氛圍,騰訊理論上和美國的戴爾、惠普沒有什麼兩樣。說的誇張一點——“技術之神”能否重新照耀這家公司?讓這家成功的公司從平庸的成功走向新的傳奇!這背後是無數人的疑問和期待。

      無論如何,張小龍表達的“善良”價值觀,留給那天晚上幾十萬讀者口有餘香的溫暖。如果能同時激勵整個騰訊的大船在“善良”的軌道上航行得更遠,這一切都是美好的。“每天都有 5 億人說我們做得不好,每天還有 1 億人想教我怎麼樣做產品”,小龍這句話的背後,切實說明了用戶的熱情和心意。

      為什麼人們熱愛張小龍?因為他在我們身邊,一直默默善良的陪伴。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 豐田看好印尼製造,將投資 20 億美元在印尼開發電動車

    豐田看好印尼製造,將投資 20 億美元在印尼開發電動車

    印尼海洋事務統籌部(Coordinating Ministry for Maritime Affairs)27 日宣布,日本豐田汽車(Toyota)計劃在未來 4 年內投資 20 億美元,在印尼開發電動車款,首先以混合動力汽車(Hybrid vehicle)為起點,以加速應對全球汽車產業的電動化浪潮。

    路透社週四報導,豐田執行董事兼社長豐田章男在聲明中表示,2019 年至 2023 年期間,將逐步增加投資對印尼的投資,總額上看 28.3 兆印尼盾(約 20 億美元)。他指出,受惠於印尼政府的政策推動,豐田將印尼視為重要的電動車投資首選地,公司將分階段逐步投資,以遵循政府的電動車發展方針。

    印尼是東南亞地區的最大經濟體,擁有豐富的鎳礦資源,這是電動車鋰電池的主要材料之一,成為吸引外國汽車製造商的拉力。此外,印尼政府先前也宣布,將給予電池和電動車製造商減稅優惠,並與其他國家簽訂關稅減免協議,積極推動電動車產業發展。

    目前印尼已是東協第二大汽車生產國,僅次於泰國。韓媒《BusinessKorea》6 月 25 日報導,受中國車市步入寒冬和產能嚴重過剩影響,南韓現代汽車(Hyundai Motor)決定關閉位於北京郊區的北京 1 號工廠,並將生產業務從中國遷至印尼,加速打入廣大的東南亞市場。

    《新加坡商業評論》(Singapore Business Review)2 月 15 日報導,國際信評機構惠譽旗下的市場研究調查機構 Fitch Solutions 預測,印尼汽車年產量將在 2019 年達到 5.8% 的成長率,主要是源於全球電動車和 SUV 的需求不斷增加。

    除此之外,印尼汽車產量也受到菲律賓、沙烏地阿拉伯、泰國和越南等市場帶動,預估合計銷量將成長 7.8%。2017 年,上述國家佔印尼整體汽車出口比重分別為 25.7%、7.4%、13.8% 和 6.2%。

    (本文內容由 授權使用。首圖來源: CC BY 2.0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 不看好歐洲純電動車市場,BMW 高層:監管機構想要,但沒有顧客真的需要

    不看好歐洲純電動車市場,BMW 高層:監管機構想要,但沒有顧客真的需要

    電動車已成為多數車商的發展趨勢,然而近日在慕尼黑舉行的 NextGen 活動期間,BMW 執行董事 Klaus Fröhlich 卻語出驚人的表示,他認為電動車轉型被過度吹捧,實際上消費者對這些車輛根本沒有需求。

    考量到 BMW 日前才宣布將加速純電動車發展計畫,Fröhlich 的發言看似大膽,但其實並非沒有道理。據了解,這項發言主要是針對遊說團體 Transport and Environment 日前公開譴責歐洲車商的回應。

    該篇報告 T&E 引述 EEA 的最新排氣數據,指出歐洲在電動車銷售明顯落後中美兩國,主要原因是市場純電動車的選擇和可用性都受侷限,而 T&E 認為,這是因為歐洲車商故意推遲純電動車的銷售計畫,好最大程度提高燃油車的利潤,「在環境方面,車商只會做法律規定他們要做的事情」。

    對這項指控,Fröhlich 表示,他認為 T&E 忽略了最重要的問題:那就是歐洲客戶實際上並不想買純電動車。

    Fröhlich 解釋,與美國人為不同目的駕駛不同車輛的習慣不同,歐洲人通常是「單車家庭」,車庫中只會有一輛車使用,因此他們並不願完全依賴純電動車,不應該拿美國的市場情況來比較。

    除此之外,還有充電基礎設施的普及問題,Fröhlich 認為,柴油引擎至少還有 20 年、汽油引擎至少還有 30 年,即使是俄羅斯、中東、中國中西部地區這些市場,在缺乏基礎建設下,燃油引擎都至少還有 10~15 年時間。

    「純電動車只適用中國、美國加州市場,至於其他地方,有更大電池的混合式動力車應該是更好的選擇。」

    除了基礎設施普及,Fröhlich 也指出,在電池原始材料,純電動車的成本要遠高於燃油或混合動力車,隨著未來市場對電池原料的需求增加,一旦供應鏈無法支持,那麼價格可能只會有增無減。

    Fröhlich 表示,如果政府能提供許多協助,BMW 可生產足以淹沒歐洲的百萬台純電動車,但在他看來,歐洲人並不想買這些東西,「監管機構想要純電動車,但沒有顧客真的需要。」

    (合作媒體:。首圖來源: CC BY 2.0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 是時候普及一下機器人素質教育了

    是時候普及一下機器人素質教育了

      文|腦極體

      每次看到人類訓練機器人,我都會很困惑一件事,那就是在如此殘酷環境中培養出來的技能,到底能在現實世界中用上幾回?

      像是狠狠從背後踹它一腳,讓它倒地后再爬起來;讓兩個機器人鬥毆在地上瘋狂摩擦;又或者是在十幾米的高台不停地跳高高……

      這麼對待重金打造的機器人,先不說畫面“不忍直視”,修理損耗難道不要錢的嗎?

      後來我明白了,這跟目前的技術路徑有關。深度學習就是要進行大量的實踐和訓練,才能不斷優化算法,直至機器人能夠應對真實世界中各種各樣的狀況。

      理論上講,只要時間足夠長、預算無上限,猴子也能用電腦寫出文學著作,更何況是算力逆天的機器。

      但這跟我們普通人又有什麼關係呢?我們能否在有生之年用上(而且買得起)可靠解決問題的機器小助手呢?一萬年太久,我們只爭朝夕好嗎?

      最近,伯克利和谷歌大腦最新開發的強化學習算法——soft actor-critic(SAC),據說就現實世界的機器人學習,或許,有望改變一下訓練機器人的古早思維。

      今天我們就來聊聊,SAC 會如何改變機器人的“成材之路”?

      為什麼想要一個 rio 的機器人,這麼難?

      在介紹 SAC 這個新算法之前,有必要先解釋一下,是不是一定要有更好的機器人算法呢?或者說,這個算法到底能夠改變什麼?

      這要從機器人在現實世界中遇到的挑戰來解答。

      首先,是目前的訓練方式,決定了機器掌握新技能的速度還遠遠不夠。

      傳統的機器學習算法,每次執行新任務時,都需要對原型設計進行參數調整,有的還需要重新收集數據進行訓練,這就使得機器新技能所需的總時間迅速增加;

      其次,現實場景中的無數意外,都有可能讓機器出現故障。

      真正在使用機器時,無論出現什麼問題,比如斷電或者網絡延遲,機器都會以“死機”來應對危機。如果每次都要以“重啟”來恢復作業,那應用機器人的價值何在?

      以上都是效率問題,傳統訓練方式帶來的成本困境,更是令研究人員愁到禿頭。

      無論是訓練人員人為製造 bug 的暴力操作,還是執行器在種種複雜環境下的高頻抖動,都會給硬件帶來極大的磨損。這是機器人嗎?這是鈔票粉碎機啊!

      當然,人類也不是沒有想過辦法。比如讓機器人打遊戲啦,設計仿真環境啦,這些努力都大大減少了對現實訓練的依賴,但歸根結底,都無法替代現實環境的多樣性和隨機性。最重要的,還是得打造一套專為現實世界機器人“量身定製”的算法。

      真實世界的機器人,到底需要怎樣的算法?

      那麼,這樣一套算法應該具備哪些屬性呢?

      至少需要有這樣幾個關鍵要素:

      1. 良好樣本複雜性。提供給算法的訓練樣本數量越多,機器獲得數據標籤的時間成本也就越低,返回的誤差也更小,在強化學習中的表現自然也就越出色;

      2. 沒有敏感的超參數。為了提高機器學習的性能和效果,往往需要對超參數進行優化,但在現實環境中,自然是參數調整越少越好。算法就需要最大限度地減少調整超參數的需求;

      3. 異步採樣。真實世界中,難免會出現數據流終端、推理延遲等問題,要讓機器在“重啟”階段也能夠保持一定的持續性和穩定性,就必須將數據的收集和訓練在確保在最小化的多個獨立線程中進行。

      4. 動作平滑。為了防止大幅度動作或震動損壞硬件,因此,時間上具有關聯和連貫性的探索就變得尤為重要了。

      簡單總結一下,如果我們相信未來真實世界中的機器人不可或缺,那麼,要求它用無限長的時間、無限多的投入、無數次的碰壁去掌握這樣那樣的本領,顯然不太明智。

      如何讓它自己進行有取捨、有現實意義的訓練呢?SAC 應聲出現。

      SAC 成功的秘訣,就是心大

      說了這麼多,正主終於出現了。那麼。究竟什麼是 SAC?

      SAC,全稱是 Soft actor-critic。從名字不難看出,SAC 也是基於 Actor-Critic 算法的邏輯,即 actor(玩家)隨機表演,critic(評委)隨機打分,互相制衡下追求更好的表現(reward)。

      不同的是,SAC 對參數的態度十分“溫柔”,它會自動權衡預期收益(最大化回報)和探索深度(最大化的不確定性),然後自動學習不是將其視為需要調整的“超參數”,從而獲得最優策略。

      這樣帶來的好處是,訓練樣本多樣,還不需要頻繁調整參數,學習效率高了很多。即使遇到最差的實驗環境,也表現良好。

      這就像是以前機器需要在人類親媽的“呵護”之下,點燈熬夜窮經皓首地做奧數題,以期成為“數學神童”。如今學會了勞逸結合奮發圖強,拿下高考高分就一本滿足了。顯然,後者才是大多數普通機器的榜樣和人類家長應該有的期待嘛。

      具體表現如何,有請來自“伯克利小學”的三位機器人同學現身說法:

      第一個向我們走來的是 Minitaur,一個帶有八個驅動執行器的小型四足機器人。在前進時,往往藉助控制器追蹤四肢的擺動部位,觀察好各種角度以平衡腿上的力度。如果沒有有效的訓練策略,很容易失去平衡而摔倒,摔多了鋼筋鐵骨也會壞的啊。

      不過,在掌握了新的學習方法之後,由於訓練時將數據的不確定性最大化,Minitaur 不需要任何額外的學習,就可以駕馭絕大對數平衡性的干擾。

      第二位是非常靈活的“三指手”同學,它的任務是用手旋轉“閥門”,使彩色掛鈎朝右。但閥門上安裝了一個小型電機,受力會自動複位。因此,每轉一次,閥門的初始位置都會被隨機重置,使得機器必須重新感知當前的閥門方向。這個任務需要感知預測,並精準地控制 9 個伺服電機關鍵來完成,非常具有挑戰性,但我們的“三指手”依然順利完成了任務。

      最後一位機器人同學雖然在玩樂高,但並沒有從中得到多少樂趣。因為訓練者要求它在堆疊積木的時候準確地對準螺柱以減少摩擦。

      除了需要確定關節的位置和速度之外,還需要保證末端的力度,並且將複雜命令同時傳送給 7 個關節。這和要求人類小孩“百步穿楊”有差別嗎?

      不過,掌握了 SAC 大法的機器並沒有讓人失望,只用 3 個小時就學會了如何搞定這個任務。而以往使用的 PPO 策略用了 7.4 小時才搞定。SAC 是不是很棒棒?

      在論文中,研究人員給 SAC 用了一個高調的定語:“state-of-the-art”(最先進的),可以說是實至名歸了。

      當然了,上述還都只是些比較概念化的實驗,真正要將這種能力擴展到更具挑戰性的現實任務中,還需要大量的優化迭代、開發編碼調參等工作,不過可以預測的是,由於 SAC 的出現,機器人正在無限近地接近概念到實用的臨界點。

      有了這個最佳引路人,機器人終於可以少受點“虐待”,真正滲透進生活的細節了。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

    ※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

    ※帶您來看台北網站建置台北網頁設計,各種案例分享

  • 中二李國慶

    中二李國慶

      本文由蓋飯特寫工作室出品,原載於公眾號「蓋飯人物」,微信號:gffeature”

      文/唐婉婷

      編輯/席驍儒

      來源: 蓋飯人物 ThePeople(ID:gffeature)

      1986 年,北大還是個在校規里明令禁止學生談戀愛的地方。

      這也可以理解。畢竟,那年頭哪怕穿個喇叭褲上街,也會換來路過的朝陽大媽們一句“不男不女,顛倒乾坤”的鬥爭腔式指責,臨走再啐上一口:呸,流氓。

      就是在這種時代環境里,時任北大學生代表大會會長的李國慶大咧咧地抱着一沓信封站在女生宿舍樓下,時不時落落大方地向路邊自以為偽裝得很好的情侶們遞上一個。信封上明晃晃印着幾個大字——“北京高等教育思想政治研究會”。

      路過的情侶看到這幾個大字,心裏暗暗犯怵,忐忑不安地接過打開一看,臉頓時憋得通紅。

      裏面裝的是避孕套。

      Part 1

      業內大嘴        

      噹噹剛上市的時候,李國慶與網友打賭“噹噹股價如果跌破發行價 16 美元,我找驢踢我腦袋。” 後來噹噹網股價跌破 16 美元。李國慶在深圳衛視的《百佬會》上說“我現在認,願賭服輸。大家誰來踢我一下?”

      中國自古有直男格言:兄弟如手足,妻子如衣服。對李國慶來說,公司大權越來越多落在妻子手中,老婆已經不是衣服,簡直是衣食父母。而兄弟呢,如果不是連續兩次挺身而出插兄弟兩刀,公眾都快忘了江湖上還有一個懟天懟地的李大嘴了。

      第一刀插在剛向婦聯道完歉的俞敏洪身上。他覺得俞敏洪“中國是因為女性的墮落導致國家的墮落”的觀點沒毛病,企業家嘛,就要敢於說出自己的真實想法。這話說完后,大家都沒怎麼較真,畢竟李國慶也不是第一次公開吐槽自己這個北大學弟,事就這麼過去了。

      還沒低調幾天,第二刀又穩穩插在剛躲過一劫的劉強東身上。李國慶說他這次只是婚外性,不是情,沒嫖娼,沒強姦,對自家太太和社會公序良俗都沒什麼損害,“雖殺風景,但劃得來”。還不忘順便傳授了一把早年的騙炮經驗。

      如果兄弟真是手足,那李國慶這就叫自殘,幸虧男人的兄弟和女人的閨蜜一樣,大都是說說而已。無論俞敏洪還是劉強東,在此之前,李國慶和這二位都多有齟齬。本意大概是想通過說反話再落井下石一波,沒成想,這回卻玩脫了。

      沒人關心他說話的動機,輿論反饋幾乎是罵聲一片。

      李國慶的微博個人簡介是“我口無遮攔,多有得罪,請海涵”,這話不是自謙。不僅他自己清楚,太太俞渝也看得明白。俞渝曾經說,“李國慶就是一個性情中人”,然後繼續解釋,這個“性情中”是“比較二”的意思。

      混到自家太太能把話說得如此直白的地步,那肯定是因為李國慶口無遮攔已經不是一天两天了。

      2010 年的 12 月,噹噹以 B2C 第一股在紐交所成功敲鐘上市。慶功宴上,投資人老虎基金、承銷投行摩根士丹利和俞渝三方觥籌交錯,說著漂亮的場面話,沒人對李國慶異樣的情緒有覺察,但後來他自己說,“當時一看見投行的人就氣得手抖”。

      李國慶為啥這麼生氣?當然因為覺得自己被投行坑了。上市之前,摩根士丹利將噹噹的股價定為 16 美元每股,一直勉強維持着噹噹收支平衡的李國慶立馬以這個價格賣了 650 萬普通股出去,一共套現 8 千多萬。結果錢還沒算清,股市開盤了,噹噹的股價蹭蹭蹭地漲到 24.5 美元,截至收盤,又漲到了 29.91 美元。開盤當天,股價總計上漲 86.94%。

      回去之後,他終於憋不住了,以往凡事都要和俞渝商量,這次算是破例:“王八蛋們明知次日開盤就會 20 億;還定價 16,也就 11 億。次日開盤,CFO 被股價嚇得尿急,我說忍了這口氣,過了靜默期,我再操你媽了個x”。

      大學時期,李國慶喜歡崔健,故而哪怕是一段諷刺投行壓低噹噹 IPO 發行價的罵街話語,看起來都像是自帶節拍韻律。

      很快,一位自稱是“摩根士丹利工作人員的”微博用戶出現,對李國慶的指責進行逐條回應。或許是因為仍不解氣,還反過來質疑噹噹的經營問題。

      摩根士丹利被圈內昵稱為大摩。投行的江湖不好混,除了不動刀棍之外,論競爭之慘烈、手段之下作,古惑仔也要認輸。大摩的人能是省油的燈嗎?公事談完,這位女工作人員繼續朝着下三路走,攻擊李國慶的婚姻和私德。

      李國慶倒是不顧身份,頂着黃V跟這位來路不清不楚的微博用戶你來我往拉鋸月余,基本上是把雙方的親戚都問候遍了,罵到兩個人都筋疲力竭,才漸漸偃旗息鼓。

      中國一直沒有自己的世界級投行,國內公司想海外上市,抱大投行的大腿都來不及,更別說問候人家母親。一時間,李國慶成了令人側目的“罵投行第一人”。而時至今日,已經沒什麼人還記得那位“大摩女”,眾人沒法忘掉的是,一月的時間,李國慶生生把噹噹的市值懟掉 20 億。

      但也不是全無好處。“大戰大摩女”事件后,中國數億網民也因此知道衣冠楚楚的商界精英群里出了個口無遮攔的李國慶,他的微博粉絲因此暴漲。

      果然沒讓粉絲們失望,幾個月後,李國慶又將正在過第一個本命年的阿里巴巴拉進了戰場——2011 年 315 晚會前,李國慶一連發了好幾條微博吐槽淘寶假貨泛濫。

      經過數輪叫陣,支付寶的白鴉(現為有贊 CEO)在微博設賭,說俞渝無法忍受李國慶,後者會被離婚,被下崗。

      白鴉不是無名之輩,雖然現在有贊因為從服務到商品各種問題被吐槽的很多,但他在中國互聯網的用戶體驗設計圈可是大神級人物和佈道者的角色。李國慶一點也不在乎,不慌不忙地在下午兩點回了一條:“估計您要輸,剛交了公糧,挺 HIGH 的”。

      Part 2

      特立獨行        

    1997 年,李國慶創辦噹噹網之前苦讀 MBA

      1964 年的國慶節,北京城裡正轟轟烈烈地進行着中華人民共和國成立 15 周年大閱兵,大街小巷一派肅穆祥和。李增雙就出生在這麼個普天同慶的日子里。

      生在國慶節,是喜上加喜。所以樸實的爹娘就給他起了個小名叫“國慶”,後來“國慶國慶”地叫順口,大名反而漸漸沒人再喊,“李增雙”就理所當然成了“李國慶”。

      那個年代,“五講四美”、“雙增雙節”的口號鋪天蓋地,所以從本質上講,換個“國慶”的名字,也並無任何根本上的不同——它們都帶着深刻的時代烙印。

      雖然家境普通,但說到底,北京是文化名城,又是紅色首都,李國慶小時候也是個愛看書的文藝少年。只是那時的書還是奢侈品,不興買,興租。不算闊綽的小學生李國慶就每天省下 3 分錢的冰棍錢,跑去租書看。在 70 年代北京前門的新華書店,經常能看到他來去匆匆的身影。

      後來,可能是因為北京城的夏天這麼熱,老不吃冰棍也不是個事兒。李國慶就跑去了離家不遠的一家叫“少年之家”的圖書館,死皮賴臉地求館里的老師答應了讓自己做圖書管理員。這個決定,不僅僅是給他省下了冰棍錢,從某種意義上講,也影響到他未來的人生路徑。

      在這裏,他看了一本據說對自己影響非常大的書——羅曼·羅蘭的《約翰·克里斯朵夫》。主人公是一位迫切地渴望被社會認可,而後又迫切要反叛主流認可的角色。他在李國慶心理種下了英雄主義的種子。

      所以也就可以理解,李國慶後來在大學和商場里老想標新立異,動不動就踹人一腳的行事風格,多半事出有因。

      1983 年,李國慶以第一名成績考入了北大社會學系,成為北大社會學重建以來的第一屆學生,再晚幾屆、後來被神奇地稱為“出行教父”的李斌,是他同門師弟。當時的校長丁石孫評價他:李國慶很鬧,但都是正統地鬧。

      這話說在李國慶大三的時候——當時北大宿舍樓的電話壞了,好幾天也沒人來修。李國慶知道后立馬氣勢洶洶跑去總務處,推門一看,“校長也在哈,校長您好。”

      寒暄完畢,轉身就換了張臉,開始質問總務長:“宿舍電話壞了為什麼老不給修?”總務長皺了皺眉頭:“不修,省得你們利用電話談戀愛”。李國慶這時的反應是憤怒地用手敲擊桌子:“你這個老昏庸,你的責任是讓它暢通無阻,你管他是談戀愛還是不談戀愛?”

      這話說得有節但不是很有禮,不卑卻稍微有點亢。總務長沒見過這般個性學生,一時竟無語凝噎。

      李國慶不是省油的燈,更不缺那個年代里罕有的特立獨行。總之,在北大校園裡,他做學生代表大會會長,貼大字報、辦演講、創立北大學生首屆藝術節。

      當時號稱中國搖滾之父的崔健正被限制演出,據說是因為用搖滾風格演繹了紅色歌曲,但是李國慶還是邀請他去北大唱歌,一時間風光無限。

      某天夜裡,李國慶從女寢樓下路過,看到有女生因談戀愛錯過了落鑰時間,而被宿管大娘拒之門外。一種使命感油然而生,他立即走上前,大手一揮:“大娘,我是學生代表大會會長,我現在要求你把門打開,而且從此不許鎖!”

      大娘不買賬,學生代表大會會長是啥官?沒聽說過啊。見官僚頭銜鎮不住對方,李國慶改用武裝鬥爭,“呵,我今天還必須把你這個封建的枷鎖砸開”,說完上前一步,脫下腳上一隻鞋,兩鞋底子把鎖給砸開了。親證如此天生神力,大娘驚得眼珠子差點掉出來。

      英雄夢想驅使下,李國慶鐵了心要做“影響中國的 100 人”。大二下學期的時候,他寫下一本書,題為《中國社會改造之我見》。北大教授袁方、於光遠看后嘖嘖稱奇:“國慶,你就好好搞學術吧,我保你三十歲必成名家”。學校領導也看到了,開玩笑和他說:“你這水平,大學一畢業,我給你找個縣委書記噹噹”。李國慶則毫不客氣:“副書記也行,保守點”。

      縣委書記自然是沒做成的,程序上講,下基層鍛煉是重用的前奏,那時的李國慶還差點火候。好在畢業之後,他還是進入了國務院發展研究中心和中共中央書記處農村政策研究室,在當時,這是個號稱“中南海翰林院”的地方。

      擺在青年李國慶面前的,是一派光明的政治前途。

      然而,規規矩矩坐了四五年辦公室后,李國慶發現,自己還是不甘違背內心,只做一個寂寞的辦公室文員。

      他渴望鮮花和掌聲。

      Part 3

      文青下海        

      2010 年 12 月,噹噹在紐交所敲鐘上市。李國慶問紐交所主席能不能敲兩下,寓意“噹噹”

      上世紀八九十年代,是一個號稱“靠擺地攤都能奔小康”的年代——會做生意的資本家,在此前幾十年的歷次政治運動中被消滅得七七八八,僵化的計劃經濟進行了幾十年。到改革開放前,國民經濟已經瀕臨崩潰。

      改革開放開啟中國大陸第一次創業熱潮,只要踏實肯干,就到處都有錢可賺,“造導彈的不如賣雞蛋的”等經典時代俗語也流傳開來。商界一派萬物初生、春光大好的景象,後來變成網絡梗的溫州皮革廠、山西煤老闆們,已經在襁褓中醞釀。

      乘着改革春風,李國慶微調整了一下自己的夢想——做“中國最富的 100 人”,然後就頭也不回地放棄公職下海了。

      作為一個名校畢業的頂級知識分子,李國慶一直對自己俗氣的名字耿耿於懷。所以,他要求自己公司的名字一定要有內涵。沉思半晌,李國慶大筆一揮,就叫“北京市科文經貿總公司”。如果不看後面的“公司”二字,旁人多半會誤以為這是哪個政府部門。

      名字起好了,賣什麼呢?李國慶繼續想,自己投筆從商一介書生,還是要面子的,肯定不能跟着人家鬧哄哄地擺地攤賣百貨。於是決定賣書,主打心靈雞湯,小目標是賺兩輛奔馳——當時,巨富們喜歡開奔馳 320,標價 32 萬。李國慶倒算一通后發現,要賣出去 10 萬套書才夠錢。

      揣着一顆火熱的奔馳夢,李國慶拎上樣書就往武漢和上海跑,隨即遭受人生第一個重大打擊——他一套也沒賣出去,連樣書都用來在火車上跟服務員換了兩盒盒飯。也幸好當年那位列車服務員的素質高,有知識需求,不然,還沒萌芽的噹噹網,就得早早倒在單程 17 小時車程的京滬線上了。

      多虧李國慶後來功成名就,才能嬉皮笑臉地回憶那段往事:那套書沒賣出去,是因為其中有一本名叫《乘着 9 路車去天堂》。而當年武漢剛好有一趟 9 路車,終點是火葬場。

      一番折騰下來,李國慶欠了一屁股債,債主怕他跑,就在他家樓下租個房子,成天守着他。在校園裡風光無限的李國慶哪裡過過這種憋屈日子,他開始反省:行走江湖,還是要把風險管控擺在第一位才靠譜。

      這一信念在二十一世紀初那場轟動全球的互聯網泡沫中更堅定了。

      2000 年,也是李國慶和俞渝一起成立噹噹的第二年,300 萬的年增長額讓李國慶雄心萬丈,彷彿又恢復了在北大校園裡揮斥方遒的時候,他斥巨資拉起一支超豪華管理團隊,大家拿着大把公司期權,憋着一口氣要把噹噹推上納斯達克。

      突然,美國股市崩盤的消息傳來,互聯網概念昨天還是香餑餑,轉眼就成了臭雞蛋,慘狀堪比今天的區塊鏈。上市的夢想就地破碎,高管們紛紛離去,李國慶和俞渝登時成了“一腳踹經理”,夫妻倆掩上門,差點抱頭痛哭。

      只是哭也沒用,該面對的還是要面對,互聯網相信數據相信忽悠相信出身相信錢,就是不相信眼淚。李國慶仔細反思了彼時的互聯網思維,覺得靠“燒錢換點擊率”不靠譜,儘管這一點現在已經成為了行業共識。俞渝也開始縮緊公司開支,預留一筆錢“過冬”。

      那段日子,倆人一邊看着一家家互聯網企業倒閉,一邊憂心忡忡地盤算自家的賬單,誰知,資本寒冬對噹噹火箭般的成長速度竟毫無影響。即便夫妻倆極力控制發展規模,噹噹依然以每年 200% 的增速成長着。靠着謹小慎微,噹噹熬過了這個冬天。

      至此,謹慎保守成了噹噹行走江湖的圭臬,然而尷尬的是,也成了最終將這個互聯網老大哥推向下坡路的重要因素。

      2010 年底,京東開啟全品類戰略,打着“三年不賺毛利,五年不賺凈利”的價格戰略侵入噹噹的命根子圖書領域,噹噹本來就不大的圖書市場硬生生被掰去一大塊,李國慶被這個隔壁學校的小學弟氣得吹鬍子瞪眼,但又無可奈何,只得再去找市場。

      經歷過資本寒冬的李國慶和俞渝仍然堅信“錢必須握在手裡才踏實”,在每一項投資中都畫上了一條價格紅線。但眾所周知,在日新月異的互聯網泡沫江湖裡,資本才是開疆拓土的核武器。

      後來這些年,噹噹做百貨,做平台,做电子書,做雲閱讀,時髦的,一樣沒落下,一樣也沒成功。大家都說這挺符合李國慶文藝青年的標籤,電影話劇小說詩歌,沒有名字不熟的,就是不能往深了問。

      說來也怪,從徐小平被俞敏洪請出新東方改扮中國年輕女創業者知音,到戴威的 ofo 獨角獸夢想破滅自己被限制高消費,再到現在噹噹面臨的尷尬局面,北大“老中青”三代創業文青,都沒能逃過半途傾覆的命運。

      2004 年,噹噹初具規模,亞馬遜提出要以 1.5 億美元收購噹噹 70% 到 90% 的股份,那時噹噹一年的銷售額才 1 億人民幣。俞渝興奮地在廚房走來走去,但李國慶不同意:“再給我三四年的時間,噹噹能翻一番”。

      當時汪延還是新浪網的總裁,他聽說李國慶不肯賣噹噹,火急火燎地帶着老婆撲到李國慶家,他說:“趕緊賣吧,別做夢了,你看我們新浪網剛上市時 16 塊一股,現在 1 塊錢一股,什麼時候爬上來?趕緊賣吧,賣了干點別的也行”。

      汪延何許人也?人家世代書香門第,他爺爺是中國著名物理學家,他爹自己是 1949 年後第一批駐法國外交官,拿過法國騎士勳章,幾個伯伯不是院士就是大學校長,比李國慶的出身顯赫太多了。他能上門規勸,應該也是真關心噹噹。

      李國慶沒理他。

      2013 年到 2014 年,噹噹又先後被百度和騰訊兩大巨頭看上,李國慶依然不肯讓步,死守占股不能超過 25% 的底線,看到這架勢,騰訊也不再多費唇舌,轉身就找了李國慶口中“傻大黑粗”的劉強東。京東在劉強東不太順利的美國求學之旅后,市值依然高達 310 億美元,而噹噹作價 75 億賣身海航失敗,至今無人接盤。

      當老大是每個文青的倔強,即使這個老大隻是一個“聯合老大”。

      Part 4

      行差踏錯        

      1995 年,31 歲的李國慶與 30 歲的俞渝相識於美國。那時候的俞渝在華爾街已經小有名聲,而李國慶還是個在紐約街頭到處求人買版權的小書商

      最早看清噹噹宿命的,是蔚來汽車的 CEO 李斌。不過那會兒,他還是個剛學會敲代碼的小伙子。

      1996 年,李斌在北大一邊輔修法律和計算機,一邊創辦了“南極科技”,偶然結識剛從美國“開眼界”回來的李國慶。李國慶覺得這位比自己小整整十歲的學弟是個不錯的苗子,就拉上了他一起創業。第二年,李斌以總經理身份參與了噹噹網前身“科文書業”創辦,李國慶任董事長。

      沒想一年後,李國慶將自己剛從美國娶回來的俞渝也安插成了董事長,李斌一看,這不成夫妻店了嗎?趕緊撤了。

      事實證明,李斌對企業管理的眼光比對電動汽車的判斷高太多了,非常有先見之明。

      後來噹噹的高層一見到李國慶和俞渝鬧分歧,立馬繞得遠遠:“無論站哪方,都要得罪另一方;哪方都不站吧,又要說我別有用心”。鬧久了,李國慶也後悔,多次在公開場合表示,如果有機會能再來一次,“一定不和俞渝一起創業”。

      噹噹創立后,李國慶的身份一直是“聯合總裁”,外人常對着這個奇怪的頭銜滿臉問號。俞渝說,這是為了顧及李國慶的自尊心,畢竟“副總裁”不太好聽,國慶還是要出去接受媒體採訪的。

      一物降一物,世事大抵如此。

      在俞渝之前,李國慶交往過六個女朋友,無一例外都出國了,他整個一出國培訓班班長。在當年,連申請護照都需要層層審批、說明嚴肅理由,可不是一般人能奢望的事情,由此也可見李國慶的社交質量之高。

      30 歲那年,李國慶覺得是時候找個人安定下來了,但他非海歸不可,卻沒聽說有哪個已經出去的真願意回國變成“海歸”。

      他決定出國找一找。

      1995 年,李國慶已近 32 歲,他在美國碰到俞渝,後來的事情就變得理所應當。俞渝是紐約大學 MBA 畢業,在華爾街做風投,已經開始嶄露頭角。兩人花了三個月時間了解,然後迅速結婚滾床單,一同回國。對於和俞渝結婚這事,李國慶承認他目標明確,是“早有預謀”。

      後來的十幾年裡,不同於功成勇退現在又出山的“百度第一夫人”馬東敏,號稱“中國第一個從索羅斯手中拿到錢的女人”的俞渝一直擔任着噹噹的聯合總裁,與李國慶平起平坐。即使李國慶氣急拍着桌子叫罵“俞渝你給我閉嘴,這事聽我的,你就好好當 CFO”,俞渝也寸步不讓。

      在噹噹任職過的老員工都說,企業領導做決策,要考慮數據、市場、競爭對手等一系列因素。但在噹噹,夫妻關係也成為影響決策的因素,而且還是重要因素。為了做成一件事,李國慶會花上足夠多的時間說服俞渝,或者反之,如果兩人意見統一不了,那就再推遲三個月做決定。

      更激烈的版本說,開會時吵得厲害,李國慶甚至會做出家暴的姿態,當然從來沒敢真正付諸實施。噹噹的產品項目組,如果彙報關係分屬夫妻兩人,最後李國慶的項目都是被砍掉的命,這也是互聯網產品圈裡公開的秘密。

      2004 年底,噹噹剛熬過寒冬,去哪兒網的聯合創始人戴政還是噹噹旗下的市場和廣告總監,在目睹了噹噹總裁辦年度總結會上的一幕後,他第一次萌生出離開的想法。當時,由於 2004 年整體業績沒有達到預期,俞渝當著所有人的面對李國慶以近乎質問的語氣說“怎麼沒有完成?”

      一分鐘沉默后,李國慶當場向俞渝提出辭職,第二天,沒有來公司,但到了第三天,就沒事人一樣地回來了。

      夫妻本是同林鳥,一起創業老想分。對於這段關係,李國慶自己在朋友圈總結:“所謂的婚姻就是有時候很愛他,有時候想一槍崩了他,大多時候是在買槍的路上遇到了他愛吃的菜,買了菜卻忘記了買槍,回家過幾天想想,還得買槍”。

      Part 5

      相愛相殺        

      2015 年的雙十一過後,李國慶與劉強東在北京一家餐館喝酒,同席的是聚美優品的陳歐

      和李國慶賣書起家一樣,早年只做 3C 的劉強東,最初在中關村租了個攤位賣刻錄機和光盤,後來生意做大,搬到了海龍大廈。據說倆人離得最近的時候,從李國慶辦公室的窗戶往外探頭,就能看到劉強東在海龍大廈底下搬箱子。

      或許是因為兩人都在創業維艱時期被初戀拋棄過,惺惺相惜,所以在很長一段時間里,李國慶和劉強東走得很近,經常約在北大西門一起喝大酒吹牛,情到深處,還和凡客的陳年一起來了個三方之約:

      你在海龍做 3C,我在書店街做圖書,陳年在凡客賣背心,我們一起干馬雲!

      聽起來怪嚇人的,雖然傑克馬打得一手好太極,但是以一敵三也讓人揪心。誰知道,馬雲還沒有被干倒,劉強東就率先打破了這份君子協議。

      2010 年底京東商城啟動全品類戰略,切入了大哥的圖書領域。大哥受不了這個氣,立即在 2011 年對數碼電器自殺式降價,“我為什麼賣 3C 啊?很簡單,為了解氣。京東賣圖書我就賣 3C,我有錢!”李國慶還不忘氣勢滿滿地到處揚言“京東的資金熬不過年底”。

      劉強東也很生氣,他最討厭別人質疑他的經濟實力。索性在微博上邀請李國慶來查賬,京東賬上若低於 60 億現金,劉強東個人捐款 1000 萬元,否則對方捐 500 萬元。

      後來,這場賭局不了了之,這大概就是所謂商業默契。所以心裏亮堂堂的這兩位,肯定不會對雷軍和董明珠的 10 億賭約有過多期待。

      不過那時的李國慶面對京東價格戰,確實信心滿滿,在他眼裡,劉強東就是個不懂事的小弟,拋出一句“噹噹網做 3C 產品只是權宜之計,若對手放手噹噹也會放棄”。意思是,你京東要玩我就花錢陪你玩,反正你也玩不了多久。

      但李國慶沒想到,京東還真把這場價格戰打到底了——全場圖書 1 折起,滿 200 減 100、免費送、折上折……8000 萬的降價補貼,直接讓噹噹的 4000 萬補貼如同燒紙。

      李國慶這才開始着急,罵劉強東“既沒有戰略,又不懂事”,放着 4000 億的服裝市場不佔,跟噹噹搶 300 億圖書的小生意,沒出息啊。

      然而,此時已穩穩掌握主動權的劉強東,絲毫不受這位大哥的嘴炮攻擊影響,清點完戰場后,立馬又向老東家老虎基金和 DST 要了 15 億,調轉炮口開始壓制蘇寧和國美。2015 年,京東第三季度的總營收出爐——441 億美元,噹噹同期總營收僅為 23.71 億,相差整整 20 倍。

      到了 2016 年 9 月,噹噹網完成私有化退市,市值 5.37 億美元,不到上市高峰時刻的四分之一。一片唏噓和指責聲中,劉強東又陰陽怪氣地上來補了一刀:“國慶在微博說我壞話最多了,但我對李國慶從來沒有討厭過,我喜歡跟他喝酒,跟他聊天”。

      Part 6

      終        

    早年俞渝在接受《人民日報》採訪時說,嫁給李國慶是為了“做柔軟的幸福女人”

      噹噹上市的時候,李國慶沒顧忌俞渝就在旁邊,把自己的前女友也請來敲鐘,一夜夫妻百日恩,居然還給了些親友股。對於此事,他常常引以為傲。俞渝也不太在意,說給親友股,那是自己建議給的。

      究竟是誰的主意,已經沒必要去深究。那時候李國慶還是噹噹第一大股東,公司控制權牢牢攢在他手裡。

      這麼些年過去,噹噹每況日下,完成私有化以後,俞渝持股上升到 64.2%,而李國慶則只佔 27.51%。噹噹實際控制人已經變成了俞渝。

      待到李國慶評論劉強東事件的微博發出,噹噹網官方微博迅速撇清和他的關係,說李國慶早已離開噹噹管理層。除了對其言論進行“強烈譴責”,還勒令李國慶換掉其個人微博頭像中的噹噹 LOGO。

      遙想當年,李國慶在公開場合炫耀起自己的“六個女朋友”,俞渝只是波瀾不驚地在旁回了一句:

      李國慶在我生活里有很重要的位置,但是我想說的就是一個幸福的女人後面她一定有十個甚至二十個她的男朋友,這些男朋友在我們家名詞中間都叫超級備胎,有陪着買衣服的,有指導做飯的,有幫着讀書的,有帶孩子滑雪的,這些人都是男性,都是我的好朋友,他們中間大概有些人跟國慶也不錯。

      【參考資料】

      【1】陳實:《李國慶:活在“襠”下》.藍媒匯

      【2】吳曉波:《吳曉波:謝謝李國慶》.虎嗅網

      【3】黃秋麗:《豪客許家印》.中國企業家

      【4】王芳潔:《中國版蓋茨比許家印》.中國企業家

      【5】熊劍輝:《力挺俞敏洪的他,用 11 年干成老大,卻在之後 6 年掉隊到“寄人籬下”》.華商韜略

      【6】嚴沁雯:《隕落與上升李國慶和王興的格局對話》.財聯社

      【7】唐三角、呂蓓卡:《噹噹,你媽貴姓?》.山河路人

      【8】陳墨:《噹噹李國慶的三場炮戰》.每日人物

      【9】王燕青:《出版業想念當年的李國慶》.南方人物周刊

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

  • 他本和牛頓雙宿雙飛,卻因羞澀錯失物理第二魔王威名

    他本和牛頓雙宿雙飛,卻因羞澀錯失物理第二魔王威名

      來源:我是科學家 iScientist

      有這麼一個流傳甚廣的段子,說流行歌手林俊傑要是不努力,就只能回家繼承百億家產。

      但實際上歷史上還有比這更誇張的真實故事。

      他的父親是德文郡公爵家族小兒子,母親是肯特公爵的女兒,可謂富甲一方,真·“不好好科研,就只能繼承家產成為首富“。

      然而,他卻靠“牛頓之後英國最偉大的科學家”為人所知,如果他要和人攀比,根本輪不到要拼家產的地步。

    卡文迪許

      但這僅僅是我們主角卡文迪許故事的冰山一角,他作為一名偉大科學家的完全體還要等到百年後麥克斯韋的意外發現才被世人所了解。

      歐姆定律、庫倫定律、電勢、電場,這些成就都悶在了他的手稿里,如果全都公開發表,那卡文迪許可能就是繼牛頓之後又一個大魔王級的人物。

      但如果終究是如果,現實就是卡文迪許錯失了與偶像牛頓在物理課本里“雙宿雙飛”的機會。而這一切緣起於他的羞澀。

    卡文迪許

      一場 18 世紀的英國頂尖學術聚會上,卡文迪許身上穿着的都還是一套起皺的褪色西裝,外加一頂卷邊帽,靦腆地站在角落。

      不了解的人也許難以想象,眼前這個的衣着樸素的人竟是個百萬富翁,還是個跨越化學與物理兩界的科學奇才。

      要說是奇才,和他同時代的科學家可不覺得。因為在他們眼裡,卡文迪許並沒有那麼偉大。但在後人看來,他隱藏起來的科研成果才令人驚詫。

    卡文迪許

      100 多年後,麥克斯韋發現他遺留下 20 多捆從未面世的物理、化學研究手稿。

      庫侖定律、歐姆定律、介電常數等後人才提出的概念,赫然出現在筆記本上。一些時隔幾百年才提出的定律也早在 18 世紀就被卡文迪許證明了出來。

      他甚至被懷疑是擁有現代先進物理知識穿越者。

    詹姆斯·克拉克·麥克斯韋

      麥克斯韋用了 5 年的時間把這些資料整理成書。而這些疑似穿越的產物,才消除了人們對於卡文迪許的誤解。

      原來卡文迪許的古怪性格早已在科學界名聲昭著。他生性羞澀,幾乎不與人交談,甚至連自己的研究成果也羞於發表。科學怪人的一生只追求自己科研的爽快,也讓世人對他的景仰晚了 100 年。

      人們給他貼上不合群、內向、沉默寡言、古怪等標籤。童年的成長曆程在他身上刻下了這一個個深刻的烙印。

    卡文迪許

      卡文迪許出生在一個英國貴族家庭,兩歲時母親就去世了。身為勛爵的科學家父親一手帶大了他和弟弟,卻很少有時間給予陪伴。

      作為彌補,父親實驗室里各種科學儀器成了卡文迪許的玩具。而忙碌的父親有時不得不帶上他出席倫敦皇家學會等科學家聚會的場合。

    卡文迪許家裡的餐廳

      卡文迪許的科學啟蒙也就由此開始。童年的經歷開拓了他的科學視野,所以他從小就有了不錯的科學基礎。

      但硬邦邦的儀器取代了親情的關懷,卡文迪許幾乎沒有機會能夠與人交流。這讓他性格變得內向、沉默寡言,甚至疑似患有自閉症。

      他幾乎完全喪失了社交能力,但同時他也獲得了強大的思考能力。

    卡文迪許

      這樣古怪的性格也讓卡文迪許越發沉迷於科研工作。他 18 歲考上了劍橋大學,學習了四年數學。

      但就在即將拿到畢業學位的前夕,他卻退學了。理由是對最後的考試中,關於神學知識的測試部分不滿。於是他寧願捨棄畢業學位而任性地退學。

      出於家境的優越,放棄了學位的卡文迪許並沒有因此而失去學習機會。這反而讓他不止局限於學校的數學教學,他又學習了深感興趣的物理和化學。

      在離開劍橋后不久,他追隨父親的影子,加入了皇家學會。融入科學界的圈子中,他才找到自己的價值,在深耕真理中做出影響世界的偉大貢獻。

    英國皇家學會

      空氣的主要成分是氧氣、氮氣和二氧化碳。人類直到 18 世紀才發現,原來空氣的成分不止這些。

      卡文迪許在研究中發現了一種十分微量的惰性氣體。

      他用電火花消耗空氣中的氮氣時,出現了一些小氣泡。

      奇怪的是,無論實驗重複多少遍,最後都還會剩餘一些小氣泡不能被氧化。無論加入什麼試劑,這種氣泡都沒有消失。

      於是卡文迪許得出結論,空氣中除了氮氣和氧氣之外,還存在一種“濁氣”。這種“濁氣”非常穩定,而且總量不超過全部空氣的1/120。

      但這種氣體具體是什麼成分,卡文迪許就沒有繼續研究下去了。直到一百多年後,才有科學家依據卡文迪許當初的實驗,揭開了“濁氣”的真面目。

      物理學家瑞利重複卡文迪許當年的實驗得到小氣泡,測定出這種氣體的密度比氮氣大。

      化學家萊姆塞重新設計了一個新實驗,用分光鏡檢查后給其中一種新元素命了名。

      這是化學性質極其穩定的稀有氣體中的一種,氬氣。

      而位於元素周期表第一位的氫,也是在卡文迪許的研究下被人們認知。當時科學命名法還沒有誕生,普遍常見的氣體也只有俗名。

      比如氧氣在當時被稱為“消炎氣體”。而一種“易燃氣體”也引發了許多科學家的火熱研究。

    卡文迪許也摻了一腳,還難得向皇家學會提交的一篇研究報告《人造空氣》。

      他用鐵、鋅等活潑金屬和稀硫酸反應,發現反應會產生一種氣體。這種氣體和空氣混合後點燃會爆炸,因此被叫做“易燃氣體”。它和氧氣相互反應還能生成液態的水。

      在當時,人們還以為水是一種元素,不知道這是氫和氧的化合物。

      卡文迪許的實驗其實就是現代高中化學中都學過的置換反應。而生成的氣體就是氫氣。

      現在人們對於氫氣的性質已經非常熟悉。但在那個時候,繁多的反應卻像一扇扇從未打開的大門,吸引了天生好奇心強烈的科學家們。

    氫氣球爆炸

      卡文迪許跨域廣泛,除了化學之外,他對物理、天文、氣象等科學領域也有所研究。其中牛頓自然哲學觀點就對他產生了深遠的影響。

      地球有多重?自從牛頓發現萬有引力定律之後,這個問題似乎已經攻破在望。解決問題的關鍵在於計算出“萬有引力常數”。

      理論上來說,可以直接測量地面上兩個已知質量物體之間的引力求得。

      但實際上這個引力數值十分微小,測量起來非常困難。

      許多科學家為此設計了各種奇怪的模型進行計算,但始終難以攻克。

      在牛頓的理論影響下,卡文迪許從十幾歲就開始研究這個問題。

    卡文迪許設計的扭稱模型

      他在劍橋大學的學習中請教到了一種巧妙的“扭稱”方法。於是他自己也設計了一個能觀察到微小力變化的模型。

      他在一根細長桿的兩端分別裝上一個小鉛球,再用石英絲橫吊著鉛球。

      如果用兩個大一些的鉛球靠近,由於產生引力,小鉛球就會發生擺動。

      而石英絲也會跟隨扭動,這時只要測量出石英絲的扭轉程度,就可以求出引力。

      為了排除干擾,他專門在一間屋子里進行實驗,還用價格昂貴的望遠鏡在屋子外觀察。

      但是當時實驗條件差,他只能通過肉眼觀察判斷石英絲的扭轉程度。

      然而引力的作用程度實在是微乎其微,眼看成功近在眼前,實驗結果卻無從得到。卡文迪許的實驗只好卡在半途。

      直到一天,他在路上看到小孩在玩鏡子反射太陽光的遊戲。小小的太陽光反射點映照在地上到處跳動。

      這讓卡文迪許大受啟發。他立馬回到實驗室改進了自己的扭稱裝置。

      他把在裝置上增加了一面鏡子,用反射到刻度線上的光線度量石英絲的扭動。這樣一來,石英絲的靈敏度大大提高,再通過簡單的力的計算就得出了引力的大小。

      這個堪稱上帝之手的扭稱實驗掂量起地球的質量,牛頓或許也因此安息了。

      5. 976×10^24 千克,也就是大約 60 萬億億噸。卡文迪許花費了四十多年的時間才得出這一個數值,最終終結了這個萬有引力難題。他被譽為“第一個稱量地球的人”。

      以上大體就是當時人們能了解到的卡文迪許成就了,至於為什麼將其他發現藏着掖着,只要跟他有過些許交流就能理解。

      孤僻的性格讓卡文迪許全心專註於科研實驗。濃厚的學術氛圍是對他不善言辭性格的極大寬容。他從來不主動結交朋友,對異性更是越發羞澀。

      甚至在家裡,大部分時候和女傭都是靠傳紙條來進行交流的。所以他終身都沒有結婚。

      而作為大富豪,卡文迪許對於錢財和交際卻完全沒有概念。

      有一次,一位工匠為他粉刷房間,過後他忘了給工匠付工錢。好友是在看不下去,告訴了他這件事。

      卡文迪許大吃一驚,連忙寫了一張兩萬英鎊的支票,還詢問夠不夠。這在當時幾乎是工匠十年的薪酬了,而他卻毫不在意。

      對於社交活動,卡文迪許是本能地抗拒的,除了每周一次的皇家學會聚會。而在宴會上,他也只是躲在角落默默地聆聽其他科學家的發言。

      在這裏他不需要說話,卻能收穫到最前沿的科學觀點和想法。但別人卻很難從他口中得知他深邃的思想和正在進行的研究。

      一位比較了解他的友人調侃,要想聽到卡文迪許高明的見解,就不能再宴會上和他有任何交流,否則他會羞澀地立馬逃跑。

      人們大都只知道卡文迪許稱量地球的成就,但他最成功的預言還埋藏在他的手稿中。他對電的研究甚至直接證明了牛頓對未來自然科學的設想。

      他原本打算用這篇文章當做牛頓提出萬有引力的《原理》中的續篇。但卻因為他羞於發表,而失去了與牛頓同享榮譽的機會。

    曾經在皇家學會上發言的牛頓

      另外,他最早證明了電荷之間的相互作用力應該與距離的平方呈反比關係。

      在 1772-1773 年間,他作了個雙層同心球實驗,第一次精確測出電作用力與距離的關係,指數偏差不超過 0.02。

      後來法國人庫倫通過實驗驗證了他的發現,從此關於電荷間的受力規律被稱作庫倫定律。

    夏爾·奧古斯丁·庫侖

      他還第一個提出了電勢的概念,指出了電勢與電流的正比關係。

      由於當時沒有測定電流的儀器,卡文迪許就把自己的身體當做實驗儀器。根據身體的麻木感覺來估計電流的強弱,發現了導體兩端的電勢(差)與通過它的電流成正比。

      這也就是我們物理課本電學章節中的歐姆定律。

    格奧爾格·西蒙·歐姆

      後來麥克斯韋通過整理,才出版了卡文迪許手稿中關於電學的研究。而通過他本人的發表和後人的搜尋,才挖掘出卡文迪許冰山一角的研究成果。除了手稿之外,他還有多少不為人知的研究,我們也就不得而知了。

    骨子里的自閉也鑄造了卡文迪許孤獨的一生。

      直到將死之際,他還刻意把傭人打發走,讓她在某個時間點再回來。

      而回來時發現,卡文迪許已經死在了床上。極度的羞澀讓他連死亡都不想別人看見。

      默默無聞的卡文迪許為科學事業做出了偉大貢獻,一生中卻沒有得過什麼獎。

      後來,麥克斯韋為紀念這位隱蔽的偉大科學家,建立了以他命名的實驗室。迄今為止,卡文迪許實驗室已經培養出 20 多位諾貝爾物理獎的獲得者。

      原本用沉默掩蓋科研成果,他捨棄了與牛頓齊名物理學史的機會。但他在角落裡散發出來的萬丈光芒卻無法收斂。假設卡文迪許的手稿當初沒有被藏着,我們現在課本里的可能就不止有牛頓力學三定律,或許還有卡文迪許電學定理一、定理二……

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 坑~夏令時冬令時引發的時間換算問題

     

    起因

    最近接觸到一些國外的項目,由於國內外有時差這個東西,對於某些基礎數據存到數據庫的時候需要記錄時間,為了方便,這裏採用了時間戳(int或者timestamp)記錄。由於時間戳全球都是一樣的,需要的時候根據時區進行轉換就能夠拿到當地的時間。

    嗯~ o(* ̄▽ ̄*)o,這樣看起來確實沒什麼毛病。眾所周知,一天有24小時,換算成秒就是:24*60*60=86400秒。

    然而,我在某次使用 MySql 的 FROM_UNIXTIME 發現一個問題,兩個時間相差86400秒,但是格式化之後卻不是相差一天!!!

    假設北京時間2019年11月25日 12:00:00,對應的時間戳是:1574654400,照理說這個時間戳加上一天86400秒,理論上就是北京時間2019年11月26日 12:00:00,事實上確實如此,國內的話這麼算確實沒什麼問題,但是如果是國外時區的話,那可能會出問題。

    由於國外部分國家有夏令時冬令時之分(具體下面會細說),直接加上86400秒可能會有問題。

    感興趣的可以拿1572764400(太平洋時間2019-11-03 00:00:00,單位:)這個時間戳驗證下

    拿代碼演示下:

    PHP:

    <?php
    
    echo "PST時區的時間\n";
    date_default_timezone_set('PST8PDT');
    echo date('Y-m-d H:i:s',1572764400);
    echo "\n";
    echo date('Y-m-d H:i:s',1572764400+86400);
    echo "\n";
    
    //換個時區
    echo "換成上海時區看看\n";
    date_default_timezone_set('Asia/Shanghai');
    echo date('Y-m-d H:i:s',1572764400);
    echo "\n";
    echo date('Y-m-d H:i:s',1572764400+86400);
    echo "\n";

    運行結果:

    PST時區的時間
    2019-11-03 00:00:00
    2019-11-03 23:00:00
    換成上海時區看看
    2019-11-03 15:00:00
    2019-11-04 15:00:00

    明明是同一個時間戳,都是加上86400(一天),為什麼在上海這個時區是第二天,而在PST(美國太平洋時區)只加了23小時?神不神奇!意不意外!

    為了弄清楚這個問題,首先得先了解下什麼是夏令時,什麼是冬令時

     

    夏令時

    夏令時,表示為了節約能源,人為規定時間的意思。也叫夏時制,夏時令(Daylight Saving Time:DST),又稱“日光節約時制”和“夏令時間”,在這一制度實行期間所採用的統一時間稱為“夏令時間”。

    一般在天亮早的夏季人為將時間調快一小時,可以使人早起早睡,減少照明量,以充分利用光照資源,從而節約照明用電。各個採納夏時制的國家具體規定不同。目前全世界有近110個國家每年要實行夏令時。[1]

     

    冬令時

    有夏令時就會有冬令時。高緯度和中緯度的許多國家在夏季到來前,把時針撥快一小時,新的時間就是夏令時,到下半季秋季來臨前,再把時針撥回一小時,即形成冬令時。 [2] 

     

    夏令時和冬令時的影響

    拿美國來說,美國各個地區的時間都不同,不像中國一樣統一使用北京時間,美國一般以三月份第二個周日凌晨兩點當成夏季的開始,十一月份第一個周日的凌晨兩點當成冬季的開始。

    所以在每年的三月份第二個周日凌晨兩點過後,時間就會往前調快一個小時;同理,十一月份第一個周日把這一個小時調回來

    你也可以理解成美國那邊,一年裡面有一天只有23小時(夏天開始那一天),有一天有25小時(冬天開始那一天),其他時間每天都是24小時。

    所以你會發現,夏天的時候,中國的北京時間(東八區)與美國太平洋時區(西八區)的時差是15小時,而到了冬天卻變成16小時

     

    解決方案

    回到開頭那個問題,如果我們想直接算第二天,直接加上86400(一天)可能在其他國家就會有我上面那個夏令時和冬令時時間換算的問題,要如何避免呢?首先能夠確定的是,直接加上86400是不可取的,如果加上一天能否行得通

    PHP:

    <?php
    
    echo "PST時區的時間\n";
    date_default_timezone_set('PST8PDT');
    echo date('Y-m-d H:i:s',1572764400);
    echo "\n";
    echo date('Y-m-d H:i:s',1572764400+86400);
    echo "\n";
    
    echo "--------------------------\n";
    echo date('Y-m-d H:i:s',1572764400);
    echo "\n";
    echo date('Y-m-d H:i:s',strtotime('+1 day',1572764400));
    echo "\n";

    運行結果:

    PST時區的時間
    2019-11-03 00:00:00
    2019-11-03 23:00:00
    --------------------------
    2019-11-03 00:00:00
    2019-11-04 00:00:00

    可以看出,不直接加上86400,直接在日期上加上一天是完全沒問題的。

    JavaScript:

    var date = new Date(1572764400*1000);
    date.setDate(date.getDate()+1);
    var timestamp = Math.round(date.getTime()/1000);

    注意:JS的時間戳是毫秒!!!

     

    結論

    在經濟全球化快速發展的今天,在軟件開發的過程中,盡量養成習慣,由於夏令時和冬令時不是固定的,開發在時間計算上應該慎用86400進行加減運算,時間計算請直接對日期進行加減,展示時間給用戶看的時候盡量結合當地時間,結合夏令時和冬令時計算出準確的當地時間,避免產生不必要的分歧。

     

    參考:

    [1]. 

    [2]. 

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

    ※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

    ※帶您來看台北網站建置台北網頁設計,各種案例分享

  • .NET高級特性-Emit(2)類的定義,.NET高級特性-Emit(1)

    .NET高級特性-Emit(2)類的定義,.NET高級特性-Emit(1)

      在上一篇博文發了一天左右的時間,就收到了博客園許多讀者的評論和推薦,非常感謝,我也會及時回復讀者的評論。之後我也將繼續撰寫博文,梳理相關.NET的知識,希望.NET的圈子能越來越大,開發者能了解/深入.NET的本質,將工作做的簡單又高效,拒絕重複勞動,拒絕CRUD。

      ok,咱們開始繼續Emit的探索。在這之前,我先放一下我往期關於Emit的文章,方便讀者閱讀。

      《》

    一、基礎知識

      既然C#作為一門面向對象的語言,所以首當其沖的我們需要讓Emit為我們動態構建類。

      廢話不多說,首先,我們先來回顧一下C#類的內部由什麼東西組成:

      (1) 字段-C#類中保存數據的地方,由訪問修飾符、類型和名稱組成;

      (2) 屬性-C#類中特有的東西,由訪問修飾符、類型、名稱和get/set訪問器組成,屬性的是用來控制類中字段數據的訪問,以實現類的封裝性;在Java當中寫作getXXX()和setXXX(val),C#當中將其變成了屬性這種語法糖;

      (3) 方法-C#類中對邏輯進行操作的基本單元,由訪問修飾符、方法名、泛型參數、入參、出參構成;

      (4) 構造器-C#類中一種特殊的方法,該方法是專門用來創建對象的方法,由訪問修飾符、與類名相同的方法名、入參構成。

      接着,我們再觀察C#類本身又具備哪些東西:

      (1) 訪問修飾符-實現對C#類的訪問控制

      (2) 繼承-C#類可以繼承一個父類,並需要實現父類當中所有抽象的方法以及選擇實現父類的虛方法,還有就是子類需要調用父類的構造器以實現對象的創建

      (3) 實現-C#類可以實現多個接口,並實現接口中的所有方法

      (4) 泛型-C#類可以包含泛型參數,此外,類還可以對泛型實現約束

      以上就是C#類所具備的一些元素,以下為樣例:

    public abstract class Bar
    {
        public abstract void PrintName();
    }
    public interface IFoo<T> { public T Name { get; set; } } //繼承Bar基類,實現IFoo接口,泛型參數T
    public class Foo<T> : Bar, IFoo<T>
      //泛型約束
      where T : struct {
    //構造器 public Foo(T name):base() { _name = name; } //字段 private T _name; //屬性 public T Name { get => _name; set => _name = value; } //方法 public override void PrintName() {
        Console.WriteLine(_name.ToString()); }
    }

      在探索完了C#類及其定義后,我們要來了解C#的項目結構組成。我們知道C#的一個csproj項目最終會對應生成一個dll文件或者exe文件,這一個文件我們稱之為程序集Assembly;而在一個程序集中,我們內部包含和定義了許多命名空間,這些命令空間在C#當中被稱為模塊Module,而模塊正是由一個一個的C#類Type組成。

     

     

     

       所以,當我們需要定義C#類時,就必須首先定義Assembly以及Module,如此才能進行下一步工作。

    二、IL概覽

       由於Emit實質是通過IL來生成C#代碼,故我們可以反向生成,先將寫好的目標代碼寫成cs文件,通過編譯器生成dll,再通過ildasm查看IL代碼,即可依葫蘆畫瓢的編寫出Emit代碼。所以我們來查看以下上節Foo所生成的IL代碼。

      

     

     

       從上圖我們可以很清晰的看到.NET的層級結構,位於樹頂層淺藍色圓點表示一個程序集Assembly,第二層藍色表示模塊Module,在模塊下的均為我們所定義的類,類中包含類的泛型參數、繼承類信息、實現接口信息,類的內部包含構造器、方法、字段、屬性以及它的get/set方法,由此,我們可以開始編寫Emit代碼了

    三、Emit編寫

      有了以上的對C#類的解讀和IL的解讀,我們知道了C#類本身所需要哪些元素,我們就開始根據這些元素來開始編寫Emit代碼了。這裏的代碼量會比較大,請讀者慢慢閱讀,也可以參照以上我寫的類生成il代碼進行比對。

      在Emit當中所有創建類型的幫助類均以Builder結尾,從下錶中我們可以看的非常清楚

    元素中文 元素名稱 對應Emit構建器名稱
    程序集  Assembly AssemblyBuilder
    模塊  Module ModuleBuilder
     Type TypeBuilder
    構造器  Constructor ConstructorBuilder
    屬性  Property PropertyBuilder
    字段  Field FieldBuilder
    方法  Method MethodBuilder

      由於創建類需要從Assembly開始創建,所以我們的入口是AssemblyBuilder

      (1) 首先,我們先引入命名空間,我們以上節Foo類為樣例進行編寫

    using System.Reflection.Emit;

      (2) 獲取基類和接口的類型

    var barType = typeof(Bar);
    var interfaceType = typeof(IFoo<>);

      (3) 定義Foo類型,我們可以看到在定義類之前我們需要創建Assembly和Module

    //定義類
    var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName("Edwin.Blog.Emit"), AssemblyBuilderAccess.Run);
    var moduleBuilder = assemblyBuilder.DefineDynamicModule("Edwin.Blog.Emit");
    var typeBuilder = moduleBuilder.DefineType("Foo", TypeAttributes.Public | TypeAttributes.Class | TypeAttributes.AutoClass | TypeAttributes.AnsiClass | TypeAttributes.BeforeFieldInit);

      (4) 定義泛型參數T,並添加約束

    //定義泛型參數
    var genericTypeBuilder = typeBuilder.DefineGenericParameters("T")[0];
    //設置泛型約束
    genericTypeBuilder.SetGenericParameterAttributes(GenericParameterAttributes.NotNullableValueTypeConstraint);

      (5) 繼承和實現接口,注意當實現類的泛型參數需傳遞給接口時,需要將泛型接口添加泛型參數后再調用AddInterfaceImplementation方法

    //繼承基類
    typeBuilder.SetParent(barType);
    //實現接口
    typeBuilder.AddInterfaceImplementation(interfaceType.MakeGenericType(genericTypeBuilder));

      (6) 定義字段,因為字段在構造器值需要使用,故先創建

    //定義字段
    var fieldBuilder = typeBuilder.DefineField("_name", genericTypeBuilder, FieldAttributes.Private);

      (7) 定義構造器,並編寫內部邏輯

    //定義構造器
    var ctorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName, CallingConventions.Standard, new Type[] { genericTypeBuilder });
    var ctorIL = ctorBuilder.GetILGenerator();
    //Ldarg_0在實例方法中表示this,在靜態方法中表示第一個參數
    ctorIL.Emit(OpCodes.Ldarg_0);
    ctorIL.Emit(OpCodes.Ldarg_1);
    //為field賦值
    ctorIL.Emit(OpCodes.Stfld, fieldBuilder);
    ctorIL.Emit(OpCodes.Ret);

      (8) 定義Name屬性

    //定義屬性
    var propertyBuilder = typeBuilder.DefineProperty("Name", PropertyAttributes.None, genericTypeBuilder, Type.EmptyTypes);

      (9) 編寫Name屬性的get/set訪問器

    //定義get方法
    var getMethodBuilder = typeBuilder.DefineMethod("get_Name", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.NewSlot | MethodAttributes.SpecialName | MethodAttributes.Virtual, CallingConventions.Standard, genericTypeBuilder, Type.EmptyTypes);
    var getIL = getMethodBuilder.GetILGenerator();
    getIL.Emit(OpCodes.Ldarg_0);
    getIL.Emit(OpCodes.Ldfld, fieldBuilder);
    getIL.Emit(OpCodes.Ret);
    typeBuilder.DefineMethodOverride(getMethodBuilder, interfaceType.GetProperty("Name").GetGetMethod()); //實現對接口方法的重載
    propertyBuilder.SetGetMethod(getMethodBuilder); //設置為屬性的get方法
    //定義set方法
    var setMethodBuilder = typeBuilder.DefineMethod("set_Name", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.NewSlot | MethodAttributes.SpecialName | MethodAttributes.Virtual, CallingConventions.Standard, null, new Type[] { genericTypeBuilder });
    var setIL = setMethodBuilder.GetILGenerator();
    setIL.Emit(OpCodes.Ldarg_0);
    setIL.Emit(OpCodes.Ldarg_1);
    setIL.Emit(OpCodes.Stfld, fieldBuilder);
    setIL.Emit(OpCodes.Ret);
    typeBuilder.DefineMethodOverride(setMethodBuilder, interfaceType.GetProperty("Name").GetSetMethod()); //實現對接口方法的重載
    propertyBuilder.SetSetMethod(setMethodBuilder); //設置為屬性的set方法

       (10) 定義並實現PrintName方法

    //定義方法
    var printMethodBuilder = typeBuilder.DefineMethod("PrintName", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.Virtual, CallingConventions.Standard, null, Type.EmptyTypes);
    var printIL = printMethodBuilder.GetILGenerator();
    printIL.Emit(OpCodes.Ldarg_0);
    printIL.Emit(OpCodes.Ldflda, fieldBuilder);
    printIL.Emit(OpCodes.Constrained, genericTypeBuilder);
    printIL.Emit(OpCodes.Callvirt, typeof(object).GetMethod("ToString", Type.EmptyTypes));
    printIL.Emit(OpCodes.Call, typeof(Console).GetMethod("WriteLine", new Type[] { typeof(string) }));
    printIL.Emit(OpCodes.Ret);
    //實現對基類方法的重載
    typeBuilder.DefineMethodOverride(printMethodBuilder, barType.GetMethod("PrintName", Type.EmptyTypes));

      (11) 創建類

    var type = typeBuilder.CreateType(); //netstandard中請使用CreateTypeInfo().AsType()

      (12) 調用

    var obj = Activator.CreateInstance(type.MakeGenericType(typeof(DateTime)), DateTime.Now);
    (obj as Bar).PrintName();
    Console.WriteLine((obj as IFoo<DateTime>).Name);

    四、應用

      上面的樣例僅供學習只用,無法運用在實際項目當中,那麼,Emit構建類在實際項目中我們可以有什麼應用,提高我們的編碼效率

      (1) 動態DTO-當我們需要將實體映射到某個DTO時,可以用動態DTO來代替你手寫的DTO,選擇你需要的字段回傳給前端,或者前端把他想要的字段傳給後端

      (2) DynamicLinq-我的第一篇博文有個讀者提到了表達式樹,而linq使用的正是表達式樹,當表達式樹+Emit時,我們就可以用像SQL或者GraphQL那樣的查詢語句實現動態查詢

      (3) 對象合併-我們可以編寫實現一個像js當中Object.assign()一樣的方法,實現對兩個實體的合併

      (4) AOP動態代理-AOP的核心就是代理模式,但是與其對應的是需要手寫代理類,而Emit就可以幫你動態創建代理類,實現切面編程

      (5) …

    五、小結

      對於Emit,確實初學者會對其感到複雜和難以學習,但是只要搞懂其中的原理,其實最終就是C#和.NET語言的本質所在,在學習Emit的同時,也是在鍛煉你的基本功是否紮實,你是否對這門語言精通,是否有各種簡化代碼的應用。

      保持學習,勇於實踐;Write Less,Do More;作者之後還會繼續.NET高級特性系列,感謝閱讀!

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

  • 標準庫bufio個人詳解

    標準庫bufio個人詳解

    本文是我有通俗的語言寫的如果有誤請指出。

    先看bufio官方文檔

    https://studygolang.com/pkgdoc文檔地址

     

     主要分三部分Reader、Writer、Scanner

    分別是讀數據、寫數據和掃描器三種數據類型的相關操作 這個掃描後面會詳細說我開始也沒弄明白其實很簡單。

     

    Reader

    func 

    func NewReaderSize(rd ., size ) *

    NewReaderSize創建一個具有最少有size尺寸的緩衝、從r讀取的*Reader。如果參數r已經是一個具有足夠大緩衝的* Reader類型值,會返回r。

     

     

     解釋:看官方解釋這個方法可能不太容易懂,這個意思就是就是你可以給*Reader自定義一個size大小的緩衝區,*Reader每次從底層io.Reader(也就是你那個文件或者流)中預讀size大小的數據到緩衝區中(可能讀不滿),然後你每次讀數據實際是從這個緩衝區中拿數據。

     

     下面是NewReaderSize源碼

    func NewReaderSize(rd io.Reader, size int) *Reader {
        // Is it already a Reader?
        b, ok := rd.(*Reader)
        if ok && len(b.buf) >= size {
            return b
        }
        if size < minReadBufferSize { //minReadBufferSize==16
            size = minReadBufferSize
        }
        r := new(Reader)
        r.reset(make([]byte, size), rd)
        return r
    }
    

      r.reset 初始化了一個*Reader 返回大小是size。

    func 

    func NewReader(rd .) *

    NewReader創建一個具有默認大小緩衝、從r讀取的*Reader。

    解釋:那這個NewReader就很好解釋了 和NewReaderSize基本一樣就是緩衝區大小是默認設置好的

    func (*Reader) 

    func (b *) Peek(n ) ([], )

    解釋:Peek就是返回緩存的一個切片,該切片引用緩存中的前N個字節的數據,如果n大於總大小,則返回能讀到的字節數的數據。

    func (*Reader) 

    func (b *) Read(p []) (n , err )

    Read讀取數據寫入p。本方法返回寫入p的字節數。本方法一次調用最多會調用下層Reader接口一次Read方法,因此返回值n可能小於len(p)。讀取到達結尾時,返回值n將為0而err將為io.EOF。

    解釋:如果緩存不為空則直接從緩存中讀數據不會從底層io.Reader讀,如果緩存為空len(p)>緩存大小,則直接從底層io.Reader讀數據到p。

    如果len(p)<緩存大小,則先從底層io.Reader中讀數據到緩存再到p。

     

    主要就這幾個 還有幾個文檔寫的都很清楚易懂我就不多寫了。

    Writer類型的方法和Reader類型的方法差不多也很易懂主要就一個Flush要注意。

    func (*Writer) 

    func (b *) Flush() 

    Flush方法將緩衝中的數據寫入下層的io.Writer接口。

    和Reader是倒過來的,Writer每次寫數據是先寫入緩衝區的,進程緩衝區填滿后,通過進程緩衝寫入到內核緩衝再寫入到磁盤,使用Flush就不等填滿直接走寫入流程了,保證你的數據及時寫入文件。

     

     

     

     解釋:scanner類型掃描器 官方的說法很複雜,我也沒太看懂找了很多資料,其實就是你在數據傳輸的時候時候使用“分隔符”,scanner類型可以通過分隔符逐個迭代你的數據。

    上面4個函數func Scan……  就是分隔符的判斷函數這4個是給你預設好的,你也可以按照自己的需求改寫。

    怎麼改寫呢,看下面

    func (*Scanner) 

    func (s *) Split(split )

    這個Split方法就是設置你這個scanner的用哪個SplitFunc類型的函數

    在看下面這個SpliFunc類型的函數簽名

    type SplitFunc func(data [], atEOF ) (advance , token [], err )

    照着這個格式寫一個不就得了么,當然具體寫法給出了但是你不會?沒關係咱看一下官方是咋寫的。

    https://github.com/golang/go/blob/master/src/bufio/scan.go?name=release#57官方源碼地址

    func ScanLines(data []byte, atEOF bool) (advance int, token []byte, err error) {
    	if atEOF && len(data) == 0 {
    		return 0, nil, nil
    	}
    	if i := bytes.IndexByte(data, '\n'); i >= 0 {
    		// We have a full newline-terminated line.
    		return i + 1, dropCR(data[0:i]), nil
    	}
    	// If we're at EOF, we have a final, non-terminated line. Return it.
    	if atEOF {
    		return len(data), dropCR(data), nil
    	}
    	// Request more data.
    	return 0, nil, nil
    }
    

       

    看bytes.IndexByte(data, ‘\n’);這段不就是在找行尾嘛 比如你想改成以“;”為分隔符的就改成bytes.IndexByte(data, ‘;’);不就得了么

    func main(){
        scanner:=bufio.NewScanner(
            strings.NewReader("abcdefg\nhigklmn"),
        )
        scanner.Split(ScanLines) //這裏可以隨意選擇用哪個函數也可以自定義,可以不指定默認為\n做分隔符
      for scanner.Scan(){
        fmt.Println(scanner.Text())
      }
    }

      

    到此為止拉~

     

     

     

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!