1.根據(jù)Rust的特點(diǎn)和定位適用于對(duì)控制性比較強(qiáng),對(duì)性能很敏感的領(lǐng)域,比如底層軟件(OS/driver),基礎(chǔ)系統(tǒng)軟件(Compiler/VM/DB等),性能要求比較高的應(yīng)用軟件(瀏覽器/圖形圖像處理/游戲/高性能服務(wù)器軟件等,或者可能包括近來(lái)很火的ML應(yīng)用方向)。2.底層軟件(比如OS/driver)部分是和C應(yīng)用領(lǐng)域有很大重合度的,在這個(gè)領(lǐng)域我認(rèn)為對(duì)C沖擊不大。在這里C已經(jīng)足夠好了,而且這些領(lǐng)域技術(shù)性很高,但業(yè)務(wù)邏輯其實(shí)并不算太復(fù)雜,Rust的優(yōu)勢(shì)作用有限。而且Rust相比于C語(yǔ)言,帶來(lái)了一定的“黑盒”和這些領(lǐng)域一些不需要的語(yǔ)言復(fù)雜特性。C作為“可移植的匯編”恰到好處的非常適合這個(gè)領(lǐng)域,其他語(yǔ)言基本無(wú)法構(gòu)成挑戰(zhàn)。3.前面1中提到的領(lǐng)域除了底層軟件(OS/driver之類(lèi))剩下的領(lǐng)域,C++目前最具有優(yōu)勢(shì)。在這些領(lǐng)域C++相對(duì)于C提供了高級(jí)特性方便開(kāi)發(fā),相對(duì)于JVM系的性能更高內(nèi)存更少。(雖然這些領(lǐng)域有些知名軟件是C和JVM系的,比如postgresql/redis/nginx/Hadoop/spark等,但在這些領(lǐng)域目前只有C++一個(gè)是全能型)我認(rèn)為rust的主要戰(zhàn)場(chǎng)就在這里,需要對(duì)決的對(duì)手就是C++。C++既有的力量(系統(tǒng)/代碼/人員/習(xí)慣)太強(qiáng)大了,在這些領(lǐng)域完全打敗C++是非常困難的。而且C++也在不斷發(fā)展,近年來(lái)發(fā)展的步伐也快了起來(lái),C++11/14/17等等。但C++的歷史包袱是很重的,越發(fā)展其實(shí)復(fù)雜性也在不斷提高,何況有些問(wèn)題(像安全/異常/復(fù)雜繼承等等)是基因里的,通過(guò)增加feature打補(bǔ)丁是彌補(bǔ)不了的。Rust最容易吸引的人群可能是C++程序員:因?yàn)?,一方面解決了不少C++的痛點(diǎn),另一方面Rust的很多特性其實(shí)有點(diǎn)復(fù)雜也有點(diǎn)門(mén)檻的。這些特性背后的動(dòng)因有C++背景的程序員是非常容易理解,也是不少C++程序員夢(mèng)寐以求的。相對(duì)而言,其他語(yǔ)言背景出身的程序員,對(duì)Rust的共鳴性遠(yuǎn)遠(yuǎn)沒(méi)有C++程序員強(qiáng)烈。猜測(cè)Rust會(huì):a.蠶食掉一定的C++份額。一些可能本會(huì)選擇C++開(kāi)發(fā)的新項(xiàng)目,可能會(huì)選擇Rust。b.蠶食掉一定的Java份額。有些項(xiàng)目選擇JVM系是由于C++開(kāi)發(fā)太復(fù)雜,同時(shí)該項(xiàng)目對(duì)性能又有一定的要求。那么Rust出現(xiàn)以后也會(huì)蠶食掉一定的此類(lèi)項(xiàng)目。c.蠶食掉一定的golang份額。不滿意gc(即使1.5改善了,gc的先天問(wèn)題是無(wú)法徹底解決的),不滿意泛型,不滿意性能的一部分項(xiàng)目。不過(guò)也要依賴(lài)于Rust未來(lái)并發(fā)的解決方案是否足夠理想了。1.0這種是沒(méi)戲的。d.移動(dòng)端Rust從自己實(shí)力上說(shuō)是夠的。不過(guò)這個(gè)真的要看出品移動(dòng)端設(shè)備的“爹”的意思了。Rust自身有一些優(yōu)勢(shì)非常明顯,在這些領(lǐng)域是很有競(jìng)爭(zhēng)力的。Rust社區(qū)一定要重視IDE開(kāi)發(fā)環(huán)境,花費(fèi)精力出eclipse/intellji/vs的高質(zhì)量的IDE插件,對(duì)于推廣和流行大有幫助。只要Rust社區(qū)不要犯D語(yǔ)言曾經(jīng)反復(fù)折騰的毛病,能像golang社區(qū)那樣基礎(chǔ)做的不錯(cuò)并且工程質(zhì)量?jī)?yōu)秀,那么未來(lái)Rust出幾個(gè)殺手級(jí)的應(yīng)用,前途還是很可期的。
創(chuàng)新互聯(lián)是專(zhuān)業(yè)的大興安嶺網(wǎng)站建設(shè)公司,大興安嶺接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大興安嶺網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
Python 是腳本語(yǔ)言,也就是中間件語(yǔ)言,其內(nèi)核仍然是純 c 的性能表達(dá)的,而主要性能消耗在腳本的實(shí)時(shí)編譯上。而對(duì)比c,同樣的功能,python可以表達(dá)比c更加精煉,當(dāng)然犧牲了一些性能。如果確實(shí)對(duì)某個(gè)模組性能不滿意,還可以使用 c 編寫(xiě) Python 模塊為其加速。面對(duì)一些并不需要過(guò)多性能而可以獲得更快捷的開(kāi)發(fā)速度,Python的優(yōu)勢(shì)完全可以蓋過(guò)“劣勢(shì)”??梢哉f(shuō),Python基本完美。例如知乎就是使用 Python 制作的。Google 的許多頁(yè)面也是使用 Python 進(jìn)行渲染的。
要說(shuō)性能,那是Rust更好。更多的編譯期優(yōu)化、無(wú) GC 等特點(diǎn)加持,開(kāi)發(fā)高性能應(yīng)用自然是 Rust 性能高。據(jù)統(tǒng)計(jì)利用 Rust 開(kāi)發(fā)的 RipGrep 性能甚至賽過(guò)使用 C 開(kāi)發(fā)的 Grep。
但是性能不是唯一考量,當(dāng)你糾結(jié) Borrow Check,糾結(jié) unsafe,糾結(jié) copy clone,糾結(jié)各種奇怪的類(lèi)型限制的時(shí)候;當(dāng)你 cargo build 怒草電腦風(fēng)扇三分鐘的時(shí)候;人家 GoLang 可能早就發(fā)兩個(gè)版了。
同時(shí) Rust 的語(yǔ)法花活眾多,遍歷數(shù)組可以寫(xiě)循環(huán)也可以 for_each() 一行流。不像 GoLang 那么白開(kāi)水誰(shuí)寫(xiě)都差不多一個(gè)味道,經(jīng)常第一天想到神來(lái)之筆快樂(lè) Coding 到半夜第二天爬起來(lái)發(fā)現(xiàn)昨晚寫(xiě)的都甚么東西看不懂不如蜘蛛爬,這是墜痛苦的!
Go 的編譯器為了個(gè)編譯速度快連循環(huán)不變式提升、循環(huán)展開(kāi)、對(duì)齊等等優(yōu)化一個(gè)都不做,函數(shù)內(nèi)斂一堆限制大多數(shù)情況都不做(比如函數(shù)里有個(gè) for 或者 defer 或者 select 等,或者函數(shù)多于 40 個(gè)表達(dá)式),擁有的優(yōu)化一只手都能數(shù)的過(guò)來(lái):
基礎(chǔ)優(yōu)化欠缺,高級(jí)優(yōu)化更是一個(gè)沒(méi)有,和在 Debug 配置編譯下的 -O0 優(yōu)化的 C++ 差不多一個(gè)概念(而且跑得更慢),哪來(lái)的資本和 rust 比性能。
其他方面:
而且 Go 的 GC 吞吐量也很低,大多數(shù)情況下各方面 Go 跑的甚至都比 Java 更慢。只不過(guò)得益于 AOT 編譯的設(shè)計(jì),相比 Java 而言除了內(nèi)存占用小和啟動(dòng)速度快之外就沒(méi)有任何優(yōu)勢(shì)了,比較適合拿來(lái)做性能不關(guān)鍵的命令行工具。
個(gè)人還是更喜歡 Rust。
已經(jīng)有好多程序員都把Go語(yǔ)言描述為是一種所見(jiàn)即所得(WYSIWYG)的編程語(yǔ)言。這是說(shuō),代碼要做的事和它在字面上表達(dá)的意思是完全一致的。 在這些新語(yǔ)言中,包含D,Go,Rust和Vala語(yǔ)言,Go曾一度出現(xiàn)在TIOBE的排行榜上面。與其他新語(yǔ)言相比,Go的魅力明顯要大很多。Go的成熟特征會(huì)得到許多開(kāi)發(fā)者的欣賞,而不僅僅是因?yàn)槠淇浯笃湓~的曝光度。下面我們來(lái)一起探討一下谷歌開(kāi)發(fā)的Go語(yǔ)言以及談?wù)凣o為什么會(huì)吸引眾多開(kāi)發(fā)者: 快速簡(jiǎn)單的編譯 Go編譯速度很快,如此快速的編譯使它很容易作為腳本語(yǔ)言使用。關(guān)于編譯速度快主要有以下幾個(gè)原因:首先,Go不使用頭文件;其次如果一個(gè)模塊是依賴(lài)A的,這反過(guò)來(lái)又取決于B,在A里面的需求改變只需重新編譯原始模塊和與A相依賴(lài)的地方;最后,對(duì)象模塊里面包含了足夠的依賴(lài)關(guān)系信息,所以編譯器不需要重新創(chuàng)建文件。你只需要簡(jiǎn)單地編譯主模塊,項(xiàng)目中需要的其他部分就會(huì)自動(dòng)編譯,很酷,是不是? 通過(guò)返回?cái)?shù)值列表來(lái)處理錯(cuò)誤信息 目前,在本地語(yǔ)言里面處理錯(cuò)誤的方式主要有兩種:直接返回代碼或者拋異常。這兩種都不是最理想的處理方式。其中返回代碼是非常令人沮喪的,因?yàn)榉祷氐腻e(cuò)誤代碼經(jīng)常與從函數(shù)中返回的數(shù)據(jù)相沖突。Go允許函數(shù)返回多個(gè)值來(lái)解決這個(gè)問(wèn)題。這個(gè)從函數(shù)里面返回的值,可以用來(lái)檢查定義的類(lèi)型是否正確并且可以隨時(shí)隨地對(duì)函數(shù)的返回值進(jìn)行檢查。如果你對(duì)錯(cuò)誤值不關(guān)心,你可以不必檢查。在這兩種情況下,常規(guī)的返回值都是可用的。 簡(jiǎn)化的成分(優(yōu)先于繼承) 通過(guò)使用接口,類(lèi)型是有資格成為對(duì)象中一員的,就像Java指定行為一樣。例如在標(biāo)準(zhǔn)庫(kù)里面的IO包,定義一個(gè)Writer來(lái)指定一個(gè)方法,一個(gè)Writer函數(shù),其中輸入?yún)?shù)是字節(jié)數(shù)組并且返回整數(shù)類(lèi)型值或者錯(cuò)誤類(lèi)型。任何類(lèi)型實(shí)現(xiàn)一個(gè)帶有相同簽名的Writer方法是對(duì)IO的完全實(shí)現(xiàn),Writer接口。這種是解耦代碼而不是優(yōu)雅。它還簡(jiǎn)化了模擬對(duì)象來(lái)進(jìn)行單元測(cè)試。例如你想在數(shù)據(jù)庫(kù)對(duì)象中測(cè)試一個(gè)方法,在標(biāo)準(zhǔn)語(yǔ)言中,你通常需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象,并且需要進(jìn)行大量的初始化和協(xié)議來(lái)模擬對(duì)象。在Go里面,如果該方法需要實(shí)現(xiàn)一個(gè)接口,你可以創(chuàng)建任何對(duì)該接口有用的對(duì)象,所以,你創(chuàng)建了MockDatabase,這是很小的對(duì)象,只實(shí)現(xiàn)了幾個(gè)需要運(yùn)行和模擬的接口——沒(méi)有構(gòu)造函數(shù),沒(méi)有附件功能,只是一些方法。 簡(jiǎn)化的并發(fā)性 相對(duì)于其他語(yǔ)言,并發(fā)性在Go里面顯得更加容易。把‘go’關(guān)鍵字放在任意函數(shù)前面然后那個(gè)函數(shù)就會(huì)在其go-routine自動(dòng)運(yùn)行(一個(gè)很輕的線程)。go-routines是通過(guò)通道進(jìn)行交流并且基本上封鎖了所有的隊(duì)列消息。普通工具對(duì)相互排斥是有用,但是Go通過(guò)使用通道來(lái)踢掉并發(fā)性任務(wù)和坐標(biāo)更加容易。 優(yōu)秀的錯(cuò)誤消息 所有與Go相似的語(yǔ)言,自身作出的診斷都是無(wú)法與Go相媲美的。例如,一個(gè)死鎖程序,在Go運(yùn)行時(shí)會(huì)通知你目前哪個(gè)線程導(dǎo)致了這種死鎖。編譯的錯(cuò)誤信息是非常詳細(xì)全面和有用的。 其他 這里還有許多其他吸引人的地方,下面就一概而過(guò)的介紹一下,比如高階函數(shù)、垃圾回收、哈希映射和可擴(kuò)展的數(shù)組內(nèi)置語(yǔ)言(部分語(yǔ)言語(yǔ)法,而不是作為一個(gè)庫(kù))等等。 當(dāng)然,Go并不是完美無(wú)瑕。在工具方面還有些不成熟的地方和用戶(hù)社區(qū)較小等,但是隨著谷歌語(yǔ)言的不斷發(fā)展,肯定會(huì)有整治措施出來(lái)。盡管許多語(yǔ)言,尤其是D、Rust和Vala旨在簡(jiǎn)化C++并且對(duì)其進(jìn)行簡(jiǎn)化,但它們給人的感覺(jué)仍是“C++看上去要更好”。
Go語(yǔ)言非??幔](méi)有為我提供足夠的類(lèi)型安全。如果不需要并發(fā),那么我寧可繼續(xù)使用Python及其生態(tài)環(huán)境,而不會(huì)去冒險(xiǎn)采用Go重寫(xiě)一切。如果需要并發(fā),那我也不會(huì)使用Go,因?yàn)樗狈︻?lèi)型安全,這個(gè)炸彈肯定會(huì)爆炸。
Rust非常適合并發(fā)和安全,盡管futures-rs的“箱子”(Rust里函數(shù)庫(kù)叫做“箱子”)依然非常新。我認(rèn)為,以后Rust會(huì)成為許多后臺(tái)的默認(rèn)語(yǔ)言。
函數(shù)式語(yǔ)言
Elixir
Elixir 比 Erlang 更容易編寫(xiě),具有 Haskell 等語(yǔ)言的函數(shù)式編程概念。Elixir是基于Erlang 虛擬機(jī)的,其廣為人知的特點(diǎn)是運(yùn)行低延時(shí)、分布式、可容錯(cuò)的系統(tǒng),并成功用于Web開(kāi)發(fā)與嵌入式軟件領(lǐng)域。
Elm
Elm是一種用于構(gòu)建 Web 應(yīng)用程序的函數(shù)式語(yǔ)言。業(yè)內(nèi)一般認(rèn)為,它適用于創(chuàng)建高可交互應(yīng)用,例如復(fù)雜的用戶(hù)界面,開(kāi)發(fā)人員可以通過(guò) Elm 快速編寫(xiě)富有表現(xiàn)力的系統(tǒng)。Elm 也以沒(méi)有運(yùn)行時(shí)異常而聞名。
PureScript
PureScript是一種可編譯為 JavaScript 的純函數(shù)式編程語(yǔ)言。與 Haskell 最相似的是,PureScript 最適合用于開(kāi)發(fā) Web 應(yīng)用程序和服務(wù)器端應(yīng)用程序。
PureScript 支持類(lèi)型推斷,與其他語(yǔ)言相比,需要明顯類(lèi)型注釋要少得多。
Swift
Swift是一種由蘋(píng)果公司開(kāi)發(fā)的通用編譯編程語(yǔ)言,最早的設(shè)想是替代上一代編程語(yǔ)言O(shè)bjective-C ,過(guò)程中結(jié)合了Objective-C、Rust、Ruby 和 Python等語(yǔ)言的編程思想。目前Swift用于開(kāi)發(fā)蘋(píng)果自己的手機(jī)、服務(wù)器、臺(tái)式機(jī)上的應(yīng)用軟件。
程序語(yǔ)言
Go
Go語(yǔ)言是由谷歌公司創(chuàng)造的類(lèi)似C風(fēng)格的語(yǔ)言。Go 比 C++ 或 Java 更簡(jiǎn)潔,比 Ruby 或 Python 更安全。
一些缺點(diǎn): 編碼要求嚴(yán)格。比如,不能混用符號(hào)和無(wú)符號(hào)整數(shù)。還有一個(gè)明顯的遺漏,Go語(yǔ)言沒(méi)有泛型和繼承。
但Go語(yǔ)言的優(yōu)勢(shì)同樣明顯,簡(jiǎn)單且易于使用。Go語(yǔ)言擅長(zhǎng)于網(wǎng)絡(luò)和多線程方面的編程。
面向?qū)ο笳Z(yǔ)言
DART
Dart同樣來(lái)自谷歌公司具有C語(yǔ)言風(fēng)格。Dart可以輕松編寫(xiě)JavaScript、Java for Android、本地機(jī)器代碼或獨(dú)立的 Dart 虛擬機(jī)。它還可以運(yùn)行后端代碼。
Dart 非常適合使用事件驅(qū)動(dòng)代碼構(gòu)建用戶(hù)界面。根據(jù)Dart 團(tuán)隊(duì)成員的說(shuō)法,Dart的優(yōu)勢(shì):可選的靜態(tài)類(lèi)型、最小的編譯時(shí)錯(cuò)誤和強(qiáng)大的內(nèi)置編輯器。
Pony
Pony是一種基于無(wú)數(shù)據(jù)競(jìng)爭(zhēng)類(lèi)型和垃圾收集的語(yǔ)言,并使用 actor 模型以及稱(chēng)為引用功能的東西。
你可以把 Pony 想象成某種“Rust 遇上 Erlang”的復(fù)合體,沒(méi)有鎖,高并發(fā)是其主要優(yōu)點(diǎn)。
Pony 的缺點(diǎn)是 API 穩(wěn)定性低、很少有高質(zhì)量的第三方庫(kù)和有限的本地工具。
TypeScript
TypeScript是一個(gè)基于 JavaScript 靜態(tài)類(lèi)型定義構(gòu)建,并由微軟維護(hù)且開(kāi)源編程語(yǔ)言。Visual Studio Code 或Visual Studio 是推薦的IDE編輯器,微軟大廠的用戶(hù)體驗(yàn)和錯(cuò)誤檢查也不用懷疑。
復(fù)合編程語(yǔ)言
Hack
Hack是一種作為 PHP 方言的 HipHop 虛擬機(jī)的編程語(yǔ)言。于 2014 年由Facebook創(chuàng)建,允許程序員同時(shí)使用靜態(tài)和動(dòng)態(tài)類(lèi)型(也稱(chēng)為漸進(jìn)類(lèi)型),這為編碼提供了靈活性。
Julia
Julia是一種高級(jí)通用編程語(yǔ)言,用于計(jì)算科學(xué)和數(shù)值分析。Julia 以動(dòng)態(tài)類(lèi)型和可重現(xiàn)的高性能特性而聞名。
Julia 在數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)等方面都有大量用途。事實(shí)上,它被英國(guó)保險(xiǎn)公司 Aviva 用于風(fēng)險(xiǎn)計(jì)算,紐約聯(lián)邦儲(chǔ)備銀行用于金融建模,甚至氣候建模聯(lián)盟用于氣候變化建模。它擁有Fortran、C++、R、Java、C 、Python等的接口,這使其成為最受追捧的新語(yǔ)言之一。
Kotlin
Kotlin是運(yùn)行在 Java 虛擬機(jī)中的更快、更流暢的 Java 版本。它現(xiàn)在是Android 開(kāi)發(fā)的首選語(yǔ)言。根據(jù) Android 開(kāi)發(fā)者網(wǎng)站顯示,程序員正轉(zhuǎn)而采用 Kotlin,因?yàn)樵撜Z(yǔ)言的樣板代碼更少,空指針異常更少,并且與 Java 有互操作性。
Kotlin 可用于在 iOS 和 Android 上運(yùn)行的應(yīng)用程序、不使用額外運(yùn)行時(shí)或虛擬機(jī)。
Nim
Nim是一種優(yōu)先考慮可讀性的靜態(tài)類(lèi)型語(yǔ)言。通過(guò)結(jié)合多種語(yǔ)言的特性,Nim 為程序員提供了速度和易用性。
它帶有 JavaScript 后端、分散的包管理、自動(dòng)內(nèi)存管理、C 和 C++ 庫(kù)的綁定以及用于調(diào)試的回溯。作為一種語(yǔ)言,Nim 是有限的,但它包含一組元編程功能,如泛型、模板和宏,因此開(kāi)發(fā)人員可以在避免冗長(zhǎng)代碼的同時(shí)以不同的風(fēng)格工作。
OCaml作為此列表中較舊的語(yǔ)言,OCaml是一種多范式語(yǔ)言——既有函數(shù)式、命令式和類(lèi)型安全,也具有面向?qū)ο蠊δ堋?/p>
OCaml 的一些優(yōu)勢(shì):定義數(shù)據(jù)類(lèi)型很容易。默認(rèn)情況下,所有變量都是不可變的。API 穩(wěn)定,具有良好的庫(kù)向后兼容性。該語(yǔ)言還為獨(dú)立應(yīng)用程序提供自動(dòng)內(nèi)存管理和單獨(dú)編譯。
Reason
如果比JavaScript 更快、更簡(jiǎn)單且類(lèi)型安全會(huì)怎樣?
這就是創(chuàng)建Reason的 Facebook 開(kāi)發(fā)者想要回答的問(wèn)題。不過(guò),他并沒(méi)有從頭開(kāi)始構(gòu)建一種新語(yǔ)言,而是采用了 OCaml,并將其調(diào)整為類(lèi)似于 JavaScript。
Reason使用項(xiàng)目 BucketScript編譯為 JavaScript,并且可以訪問(wèn) 80% 的 JavaScript 工具和生態(tài)系統(tǒng)。它還可以編譯為準(zhǔn)系統(tǒng)、iOS、Android 和微控制器。
Red
Red是一種最初旨在克服 Rebol 語(yǔ)言限制的編程語(yǔ)言。Red 于 2011 年推出,受 Rebol、Lua 和 Scala 等語(yǔ)言的影響,對(duì)高級(jí)和低級(jí)編程都很有用。
該語(yǔ)言可用于開(kāi)發(fā)從高級(jí) GUI 到低級(jí)操作系統(tǒng)的所有方面。Red 擁有人性化的語(yǔ)法、低內(nèi)存占用和垃圾收集等優(yōu)點(diǎn)。
Rust
Rust解決了一些與 Go 相同的問(wèn)題,如系統(tǒng)級(jí)別的線程和進(jìn)程安全,,但Rust 更像 C 風(fēng)格的語(yǔ)法
但Rust語(yǔ)言的缺點(diǎn):靜態(tài)類(lèi)型和缺乏垃圾收集
Rust可直接訪問(wèn)內(nèi)存意味著程序員可以編寫(xiě)低級(jí)代碼,如操作系統(tǒng)內(nèi)核。Rust 也非常適合嵌入式設(shè)備、網(wǎng)絡(luò)服務(wù)和命令行編寫(xiě)。
分享標(biāo)題:rust和go語(yǔ)言,rust和go的區(qū)別
本文地址:http://chinadenli.net/article26/hegdcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、App開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)