日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一網(wǎng)打盡 Rust 語法

來源: 責編: 時間:2024-04-26 08:51:50 179觀看
導讀1. 構(gòu)建運行環(huán)境我們在Rust環(huán)境配置和入門指南中詳細介紹了如何安裝Rust環(huán)境構(gòu)建一個Rust應用編譯和運行的區(qū)別使用Cargo構(gòu)建Rust應用下面,我們就之間直入主題了。通過創(chuàng)建一個名為 main.rs 的文件并將以下代碼放入其

1. 構(gòu)建運行環(huán)境

我們在Rust環(huán)境配置和入門指南中詳細介紹了g4M28資訊網(wǎng)——每日最新資訊28at.com

  • 如何安裝Rust環(huán)境
  • 構(gòu)建一個Rust應用
  • 編譯和運行的區(qū)別
  • 使用Cargo構(gòu)建Rust應用

下面,我們就之間直入主題了。g4M28資訊網(wǎng)——每日最新資訊28at.com

通過創(chuàng)建一個名為 main.rs 的文件并將以下代碼放入其中來編寫我們的第一個 Rust 代碼:g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    println!("Hello, Front789!");}

然后通過運行 rustc main.rs 和 ./main.exe 來運行這個程序,就像運行 C 程序一樣。g4M28資訊網(wǎng)——每日最新資訊28at.com

Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器g4M28資訊網(wǎng)——每日最新資訊28at.com

我們也可以使用 cargo 創(chuàng)建項目。g4M28資訊網(wǎng)——每日最新資訊28at.com

  • cargo new hello_cargo:初始化一個新項目。
  • cargo build:構(gòu)建一個 cargo 項目。
  • cargo run:運行一個 cargo 項目,這將編譯并運行代碼。
  • cargo check:檢查是否有編譯錯誤,它比cargo build速度更快。
  • cargo build --release:這將使用優(yōu)化進行編譯,用于最終生產(chǎn)構(gòu)建。

2. 變量類型

在 Rust 中,默認情況下「變量是不可變」的,這意味著一旦給變量賦值,其值就不會改變。g4M28資訊網(wǎng)——每日最新資訊28at.com

所以如果想要一個可變的,即可改變的值,使用 mut。g4M28資訊網(wǎng)——每日最新資訊28at.com

let a = 5;let mut b = 5; // 可變的
  • 整數(shù):有各種大小的有符號和無符號整數(shù)(例如,i8、i16、i32、i64、u8、u16、u32、u64)

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

let number: i32 = 42;
  • 浮點數(shù):單精度和雙精度浮點數(shù)(例如,f32、f64)

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

let pi: f64 = 3.14159;
  • 布爾值:Rust的布爾類型只擁有兩個可能的值true和false,它「只會占據(jù)單個字節(jié)的空間大小」。使用bool來表示一個布爾類型。
let is_rust_cool: bool = true;
  • 字符:在Rust中char類型「占4字節(jié)」,是一個Unicode標量值,這意味著它可以表示比ASCII多的字符內(nèi)容。使用char 類型表示一個字符類型
let heart_emoji: char = '?';
  • 字符串:可變字符串

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

let mut s = String::from("front789");
  • 字符串切片:不可變且借用的字符串切片
let s1: &str = "front789";
  • 數(shù)組:數(shù)組中每一個元素都必須是「相同類型」。 Rust中「數(shù)組擁有固定的長度,一旦聲明就再也不能隨意更改大小」
let array: [i32; 3] = [1, 2, 3];let a = [3; 5]; // 用值 3 初始化大小為 5 的數(shù)組
  • 元組

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

為了從元組中獲得單個的值,可以使用「模式匹配」來解構(gòu)元組g4M28資訊網(wǎng)——每日最新資訊28at.com

還可以通過「索引」并使用點號(.)來訪問元組中的值g4M28資訊網(wǎng)——每日最新資訊28at.com

let tup = (500, 6.4, 1);let (x, y, z) = tup;let aa = tup.0; // 引用元組中的第一個項目
  • 向量

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

  • 指針和引用

指針是一個變量,它存儲了一個值的「內(nèi)存地址」g4M28資訊網(wǎng)——每日最新資訊28at.com

Rust 中最常見的指針是引用。引用以 & 符號為標志并「借用了它們所指向的值」。除了引用數(shù)據(jù)沒有任何其他特殊功能。它們也沒有任何額外開銷,所以應用得最多。g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    // 標量類型    let number: i32 = 42;    let pi: f64 = 3.14159;    let is_rust_cool: bool = true;    let heart_emoji: char = '?';    // 復合類型    let array: [i32; 3] = [1, 2, 3];    let tuple: (i32, f64, char) = (10, 3.14, 'a');    let slice: &[i32] = &[1, 2, 3];    let string: String = String::from("Hello, Front789!");    let string_slice: &str = "Hello, Front789!";    // 特殊類型    let reference_to_number: &i32 = &number;    let optional_value: Option<i32> = Some(42);    let result_value: Result<i32, &str> = Ok(42);}

以上內(nèi)容就是Rust中所涉及到的各種數(shù)據(jù)類型,我們可以從以下的鏈接中找到更為詳細的解釋g4M28資訊網(wǎng)——每日最新資訊28at.com

  • 基礎概念
  • 集合
  • 智能指針

3. 操作數(shù)組

不可變數(shù)組:

不可變數(shù)組在 Rust 中用 [T; N] 語法來聲明,其中 T 表示數(shù)組元素的類型,而 N 表示數(shù)組的長度。g4M28資訊網(wǎng)——每日最新資訊28at.com

對于不可變數(shù)組,我們可以使用下標訪問其元素,但不能修改元素的值。g4M28資訊網(wǎng)——每日最新資訊28at.com

let array = [1, 2, 3, 4, 5];let first_element = array[0]; // 訪問第一個元素arr[0] = 6; // 這行代碼會導致編譯錯誤,因為數(shù)組是不可變的// 迭代// 使用 for 循環(huán)for &num in &array {    println!("{}", num);}// 另一種迭代器array.iter().for_each(|&num| {    println!("{}", num);});let slice = &array[1..3]; // 從索引 1 到索引 2(包括)切片

可變數(shù)組

Vec<T> 是 Rust 中可變長數(shù)組的實現(xiàn),它允許您動態(tài)地增加或減少數(shù)組的大小。g4M28資訊網(wǎng)——每日最新資訊28at.com

let mut array = [1, 2, 3, 4, 5];array[0] = 10; // 修改第一個元素let mut vec = Vec::new(); // 創(chuàng)建一個空 Vecvec.push(1); // 向 Vec 中添加一個元素vec.push(2);vec.push(3);// 使用 iter() 遍歷元素for item in array.iter() {    println!("{}", item);}// iter_mut() 方法返回一個可變的迭代器,允許修改 Vec 中的元素for item in array.iter_mut() {    *item += 1; // 對每個元素加 1}// maplet doubled_array: Vec<_> =     array.iter()    .map(|&num| num * 2)    .collect();// filterlet even_elements: Vec<_> =     array.iter()    .filter(|&&num| num % 2 == 0)    .collect();// len() 方法返回 Vec 中元素的數(shù)量array.len()// remove() 方法移除指定索引位置的元素,并返回該元素。如果索引越界,它將導致 panic。let removed_item = array.remove(2) // removed_item 為3

4. 操作字符串

let s1 = String::from("Hello, ");let s2 = String::from("Front789!");let combined = s1 + &s2; // 注意:s1 在這里被移動,之后不能再使用println!("{}", combined); // 打印 "Hello, Front789!"let mut s = String::from("Hello, ");s.push_str("Front789!");println!("{}", s); // 打印 "Hello, Front789!"http:// 獲取字符let s = String::from("hello");let first_char = s.chars().nth(0); // 訪問第一個字符// 子字符串let s = String::from("hello Front789");let substring = &s[0..5]; // 提取 "hello"http:// len()let s = String::from("hello");let length = s.len(); // 字符串的長度// replacelet s = String::from("hello");let replaced = s.replace("l", "z"); // 替換 "l" 為 "z"http:// splitlet s = String::from("hello Front789");let words: Vec<&str> = s.split_whitespace().collect(); // 分割成單詞// 轉(zhuǎn)換 &str 和 Stringlet s = String::from("hello");let s_ref: &str = &s; // 將 String 轉(zhuǎn)換為 &strlet s_copy: String = s_ref.into(); // 將 &str 轉(zhuǎn)換為 String

5. 操作向量

let mut v1 = vec![1, 2, 3]; // 使用 vec![] 宏let mut v2: Vec<i32> = Vec::new(); // 使用 Vec::new() 構(gòu)造函數(shù)let mut v = Vec::new();v.push(1);v.push(2);let first_element = v[0]; // 訪問第一個元素// 迭代// 使用 for 循環(huán)for num in &v {    println!("{}", num);}// 使用迭代器v.iter().for_each(|&num| {    println!("{}", num);});// slicelet slice = &v[1..3]; // 從索引 1 到索引 2(包括)提取元素// removelet removed_element = v.remove(1); // 移除索引為 1 的元素(返回被移除的元素)// sort()v.sort();// joinlet tt= vec!["hello", "Front789"];let joined_string = tt.join(", "); // 使用逗號和空格連接元素

6. 函數(shù)

Rust代碼使用「蛇形命名法」來作為規(guī)范函數(shù)和變量名稱的風格。蛇形命名法「只使用小寫的字母進行命名,并以下畫線分隔單詞」。g4M28資訊網(wǎng)——每日最新資訊28at.com

  • 參數(shù),它們是一種「特殊的變量,并被視作函數(shù)簽名的一部分」。當函數(shù)存在參數(shù)時,你需要在「調(diào)用函數(shù)時為這些變量提供具體的值」
  • 在Rust中,「函數(shù)的返回值等同于函數(shù)體的最后一個表達式」。

語法

fn 函數(shù)名(參數(shù)1: 類型1, 參數(shù)2: 類型2) -> 返回類型 {    // 函數(shù)體    // 可選的表達式}

最后一行返回值時不需要調(diào)用 return。g4M28資訊網(wǎng)——每日最新資訊28at.com

fn add_numbers(x: i32, y: i32) -> i32 {    let sum = x + y;    sum // 函數(shù)中的最后一個表達式會隱式返回}

如果想要一個無返回值的函數(shù),不要定義返回類型。g4M28資訊網(wǎng)——每日最新資訊28at.com

我們可以在基礎概念_函數(shù)部分查看更詳細的解釋g4M28資訊網(wǎng)——每日最新資訊28at.com

7. 輸入/輸出

輸入

要讀取一個值,使用 io stdin 并給出變量的值,在失敗時需要提供 expect 消息,否則會出錯。g4M28資訊網(wǎng)——每日最新資訊28at.com

let mut guess = String::new();    io::stdin().read_line(&mut guess).expect("該行讀取失敗");

輸出 / 打印

println!("輸出對應的變量信息 {}", guess); // 這里的 guess 是變量名。

你也可以在末尾有變量g4M28資訊網(wǎng)——每日最新資訊28at.com

let y = 10;println!("y + 2 = {}", y + 2);

8. Shadowing

在Rust中,一個「新的聲明變量可以覆蓋掉舊的同名變量」,我們把這一個現(xiàn)象描述為:「第一個變量被第二個變量遮蔽Shadow了」。這意味著隨后使用這個名稱時,它指向的將會是第二個變量。g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    let x = 5; // 定義值為 5 的變量 x    println!("原始值 x: {}", x); // 打印 "原始值 x: 5"        let x = 10; // Shadowing:定義一個新的值為 10 的變量 x    println!("Shadowed x: {}", x); // 打印 "Shadowed x: 10"}

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

9. 控制塊

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

If else

if condition1 {    // 如果 condition1 為真,則執(zhí)行的代碼} else if condition2 {    // 如果 condition2 為真,則執(zhí)行的代碼} else {    // 如果 condition1 和 condition2 都為假,則執(zhí)行的代碼}

10. 循環(huán)

Rust提供了3種循環(huán)g4M28資訊網(wǎng)——每日最新資訊28at.com

  • loop
  • while
  • for

loop

loop {    println!("永無止境的執(zhí)行");}

While 循環(huán)

let mut count = 0;while count < 5 {    println!("Count: {}", count);    count += 1;}

For 循環(huán)

for i in 0..5 {    println!("{}", i);}

foreach

當然也少不了對數(shù)值的遍歷操作。g4M28資訊網(wǎng)——每日最新資訊28at.com

(1..=5).for_each(|num| {    println!("Number: {}", num);});// Number: 1// Number: 2// Number: 3// Number: 4// Number: 5

..:它表示一個擴展運算符,表示從第一個數(shù)字到最后一個數(shù)字生成。g4M28資訊網(wǎng)——每日最新資訊28at.com

我們也可以在循環(huán)中使用 continue 和 break。g4M28資訊網(wǎng)——每日最新資訊28at.com

11. 所有權

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

這個概念是需要特別注意和反復觀看的部分。g4M28資訊網(wǎng)——每日最新資訊28at.com

MOVE(或)重新分配變量

當變量值被重新分配時,值會給新的所有者,并且舊的所有者被丟棄。g4M28資訊網(wǎng)——每日最新資訊28at.com

這種行為在字符串中經(jīng)常看到,而不是其他類型,如下所示:g4M28資訊網(wǎng)——每日最新資訊28at.com

let s1 = String::from("hello");let s2 = s1;println!("{}, world!", s1);

這將導致錯誤,因為 s1 在 s2=s1 之后不再有效。g4M28資訊網(wǎng)——每日最新資訊28at.com

如何解決上面的問題呢,我們可以使用 Clone:g4M28資訊網(wǎng)——每日最新資訊28at.com

let s1 = String::from("hello");let s2 = s1.clone();println!("s1 = {}, s2 = {}", s1, s2);

某些類型隱式實現(xiàn)了 Clone。g4M28資訊網(wǎng)——每日最新資訊28at.com

let x = 5; // x 擁有整數(shù) 5let y = x; // 將 x 的值復制到 y,不傳遞所有權

例如,整數(shù)隱式實現(xiàn)了 Clone,因此這段代碼不會報錯。g4M28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

所有權和函數(shù)

fn main() {    let s = String::from("hello");  // s 進入作用域    takes_ownership(s);             // s 的值移動進入函數(shù)...                                    // ... 所以這里不再有效    let x = 5;                      // x 進入作用域    makes_copy(x);                  // x 會移入函數(shù),                                    // 但 i32 是 Copy,所以在之后繼續(xù)使用 x 是可以的} // 在這里,x 超出作用域,然后是 s。但因為 s 的值被移動了,所以沒有什么特別的發(fā)生。fn takes_ownership(some_string: String) { // some_string 進入作用域    println!("{}", some_string);} // 在這里,some_string 超出作用域,調(diào)用 drop。內(nèi)存被釋放。fn makes_copy(some_integer: i32) { // some_integer 進入作用域    println!("{}", some_integer);} // 在這里,some_integer 超出作用域。沒有什么特別的發(fā)生。

如果我們像在變量被移動后,繼續(xù)使用,那么我們就使用 takes_ownership(s.clone()); (或者)在 takes_ownership 函數(shù)中返回值,像這樣:g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    let s2 = String::from("hello");     // s2 進入作用域    let s3 = takes_and_gives_back(s2);  // s2 移入并被返回}fn takes_and_gives_back(a_string: String) -> String {     a_string  // 返回并移出到調(diào)用函數(shù)}

借用 — 所有權

傳遞變量的引用,所有權不會被傳遞。g4M28資訊網(wǎng)——每日最新資訊28at.com

我們稱「創(chuàng)建引用的操作為借用」。就像現(xiàn)實生活中,如果一個人擁有一樣東西,你可以從他們那里借來。借了之后,你必須歸還。你不擁有它。g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    let s1 = String::from("hello");    let len = calculate_length(&s1);    println!("The length of '{}' is {}.", s1, len);}fn calculate_length(s: &String) -> usize {    s.len()}

針對此處更詳細的內(nèi)容,可以翻看我們之前的所有權g4M28資訊網(wǎng)——每日最新資訊28at.com

12. 結(jié)構(gòu)體

struct,或者 structure,是一個「自定義數(shù)據(jù)類型」,允許我們命名和包裝多個相關的值,從而形成一個有意義的組合。g4M28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

struct User {    active: bool,    username: String,    email: String,    sign_in_count: u64,}fn main() {    let mut user1 = User {        active: true,        username: String::from("front789"),        email: String::from("front789@example.com"),        sign_in_count: 1,    };    user1.email = String::from("anotheremail@example.com");    let user2 = User {        email: String::from("another@example.com"),        ..user1    };}

在 user2 中,你會看到 ..,它是擴展運算符,將 user1 中剩余的值傳遞給 user2(除了已經(jīng)定義的 email)。g4M28資訊網(wǎng)——每日最新資訊28at.com

結(jié)構(gòu)體的方法

使用 impl 結(jié)構(gòu)體名,并在其中定義函數(shù)。g4M28資訊網(wǎng)——每日最新資訊28at.com

#[derive(Debug)]struct Rectangle {    width: u32,    height: u32,}impl Rectangle {    fn area(&self) -> u32 {        self.width * self.height    }}fn main() {    let rect1 = Rectangle {        width: 30,        height: 50,    };    println!(        "長方形的面積為 {}",        rect1.area()    );}

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

針對此處更詳細的內(nèi)容,可以翻看我們之前的結(jié)構(gòu)體g4M28資訊網(wǎng)——每日最新資訊28at.com

13. 枚舉

枚舉,也被稱作 enums。枚舉允許你通過「列舉可能的成員variants來定義一個類型」g4M28資訊網(wǎng)——每日最新資訊28at.com

enum IpAddrKind {    V4,    V6,}let four = IpAddrKind::V4;let six = IpAddrKind::V6;

枚舉的成員位于其標識符的「命名空間中」,并「使用兩個冒號分開」。g4M28資訊網(wǎng)——每日最新資訊28at.com

match

這是類似于 switch 的東西,g4M28資訊網(wǎng)——每日最新資訊28at.com

enum Coin {    Penny,    Nickel,    Dime,    Quarter,}fn value_in_cents(coin: Coin) -> u8 {    match coin {        Coin::Penny => 1,        Coin::Nickel => 5,        Coin::Dime => 10,        Coin::Quarter => 25,    }    let number = 5;    match number {        1 => println!("One"),        2 => println!("Two"),        3 | 4 | 5 => println!("Three, Four, or Five"),        _ => println!("Other"), // 默認情況    }}

每個分支相關聯(lián)的代碼是一個表達式,而表達式的結(jié)果值將作為整個 match 表達式的返回值。g4M28資訊網(wǎng)——每日最新資訊28at.com

Option 枚舉和其相對于空值的優(yōu)勢

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

if Let

這是一種使用 if 的花式方式,我們在其中定義一個表達式。g4M28資訊網(wǎng)——每日最新資訊28at.com

fn main() {    let optional_number: Option<i32> = Some(5);    // 使用 if let 匹配 Some 變體并提取內(nèi)部值    if let Some(num) = optional_number {        println!("Value: {}", num);    } else {        println!("No value");    }}

14. 并發(fā)性

并發(fā)編程和并行編程

圖片圖片g4M28資訊網(wǎng)——每日最新資訊28at.com

代碼實現(xiàn)

為了創(chuàng)建一個新線程,需要調(diào)用 thread::spawn 函數(shù)并「傳遞一個閉包」,并在其中包含希望在新線程運行的代碼。g4M28資訊網(wǎng)——每日最新資訊28at.com

可以通過將 thread::spawn 的「返回值儲存在變量中來修復新建線程部分沒有執(zhí)行或者完全沒有執(zhí)行的問題」。thread::spawn 的返回值類型是 JoinHandle。JoinHandle 是一個「擁有所有權的值」,當「對其調(diào)用 join 方法時,它會等待其線程結(jié)束」。g4M28資訊網(wǎng)——每日最新資訊28at.com

use std::thread;fn main() {    // 數(shù)據(jù)    let numbers = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];    // 將數(shù)據(jù)分成兩部分    let mid = numbers.len() / 2;    let (left, right) = numbers.split_at(mid);    // 生成兩個線程來計算每一半的總和    let handle1 = thread::spawn(move || sum(left));    let handle2 = thread::spawn(move || sum(right));    // 等待線程完成并獲取它們的結(jié)果    let result1 = handle1.join().unwrap();    let result2 = handle2.join().unwrap();    // 計算最終總和    let total_sum = result1 + result2;    println!("Total sum: {}", total_sum);}fn sum(numbers: &[i32]) -> i32 {    let mut sum = 0;    for &num in numbers {        sum += num;    }    sum}

thread::spawn 要求閉包具有 'static 生命周期,這意味著它不會從周圍范圍借用任何東西,并且可以在整個程序的持續(xù)時間內(nèi)存在。g4M28資訊網(wǎng)——每日最新資訊28at.com

因此,我們使用move 閉包,其經(jīng)常與 thread::spawn 一起使用,因為它允許我們「在一個線程中使用另一個線程的數(shù)據(jù)」。g4M28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-85705-0.html一網(wǎng)打盡 Rust 語法

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 聊聊業(yè)務高可用的保障:異地多活架構(gòu)

下一篇: 這個被忽略的細節(jié),是編寫優(yōu)秀 Python 代碼的必經(jīng)之路

標簽:
  • 熱門焦點
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產(chǎn)品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • 從零到英雄:高并發(fā)與性能優(yōu)化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構(gòu)師或者程序員,你是否曾經(jīng)為公司的系統(tǒng)在面對高并發(fā)和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 零售大模型“干中學”,攀爬數(shù)字化珠峰

    文/侯煜編輯/cc來源/華爾街科技眼對于絕大多數(shù)登山愛好者而言,攀爬珠穆朗瑪峰可謂終極目標。攀登珠峰的商業(yè)路線有兩條,一是尼泊爾境內(nèi)的南坡路線,一是中國境內(nèi)的北坡路線。相
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    &copy;自象限原創(chuàng)作者|程心排版|王喻可2016年7月13日,百度云計算戰(zhàn)略發(fā)布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現(xiàn)&ldquo;美團直播&rdquo;的固定入口。在直播聚合頁面,外賣&ldquo;神槍手&rdquo;直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 3699元!iQOO Neo8 Pro頂配版今日首銷:1TB UFS 4.0同價位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更是首發(fā)搭載了聯(lián)發(fā)科天璣9200+旗艦
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續(xù)還將開展常態(tài)化登記。  北京科技教育體驗基
Top 主站蜘蛛池模板: 阆中市| 灵台县| 措勤县| 青岛市| 清徐县| 云浮市| 昆山市| 清远市| 大安市| 紫阳县| 师宗县| 汤原县| 武山县| 大关县| 大庆市| 沐川县| 酉阳| 汤原县| 漳州市| 图片| 宝应县| 玉林市| 广平县| 江山市| 出国| 阿勒泰市| 维西| 青龙| 尚义县| 文昌市| 汉川市| 诸城市| 尉氏县| 沂南县| 乐清市| 阿拉善右旗| 邵武市| 内江市| 呼玛县| 乃东县| 德庆县|