模組不存在 public 模組

2021-10-11 19:28:47 字數 3092 閱讀 4623

rust提供了功能強大的模組系統,可用於按邏輯單位按層次劃分**。並管理他們的可見性。

模組是專案的集合,函式、結構、特性隱含模組、甚至其他模組。

預設情況下,模組中的專案具有私有可見性。但是可以使用pub修飾符覆蓋使他成為模組之外可訪問的公共項。

mod mymod 

// 加上`pub`標識修改函式的可見性,標明該函式是共有的

pub fn function()

// 同一模組的函式可以呼叫該模組的所有函式包括私有函式

pub fn indirect_access()

pub mod nested

#[allow(dead_code)]

fn private_function()

pub(in crate::mymod) fn public_function_in_mymod()

pub (self) fn public_function_in_nested()

pub (super) fn public_function_in_super()

}pub fn call_public_function_in_mymod()

pub(crate) fn public_function_in_crate()

mod private_nested

#[allow(dead_code)]

pub(crate) fn retired_function()

}}fn function()

fn main()

pub標識修改函式的可見性,標明該函式是共有的。

預設函式都是模組私有的。

同一模組的函式可以呼叫該模組的所有函式包括私有函式。

pub(in path)標識,函式對於path模組是共有的。

pub(self)和pub(crate)標識,函式在本模組是共有的,可以被上層模組呼叫。

pub(super)標識,函式對於上層模組是共有的。

模組中的struct預設是,私有的不可匯出的,如果需要使用,需要在宣告時加上pub標識。

mod my 

pub struct closebox

implclosebox}}

}fn main() ;

println!("openbox: {}", open.content);

let close = my::closebox::new("my name is lome");

// println!("{}", close)

}

openboxclosebox都是共用的struct

openboxfiledcontent是共有的,所以可以直接通過賦值得到。

closeboxfiledcontent是私有的,所以不能直接賦值得到,只能通過共有的工廠函式new來建立。

mod mymod 

// 加上`pub`標識修改函式的可見性,標明該函式是共有的

pub fn function()

// 同一模組的函式可以呼叫該模組的所有函式包括私有函式

pub fn indirect_access()

pub mod nested

#[allow(dead_code)]

fn private_function()

pub(in crate::mymod) fn public_function_in_mymod()

pub (self) fn public_function_in_nested()

pub (super) fn public_function_in_super()

}pub fn call_public_function_in_mymod()

pub(crate) fn public_function_in_crate()

mod private_nested

#[allow(dead_code)]

pub(crate) fn retired_function()

}}fn function()

use mymod::;

use mymod::function as mymod_function;

use mymod::nested::function as nested_function;

fn main()

use宣告可用於匯入完整路徑。也可以用as來重新命名匯入模組的名字。

selfsuper可以消除訪問專案時的歧義,並且防止不必要的路徑硬編碼。

mod my 

mod cool

}pub fn indirect_function()

}}mod cool

}fn function()

fn main()

self引用當前模組作用域。super引用父模組的作用域。

module可以被對映成檔案或資料夾

$ tree .

.|-- my

| |-- inaccessible.rs

| |-- mod.rs

| `-- nested.rs

`-- split.rs

THINKPHP 解決模組不存在時出現空頁面的問題

遇到的問題 最近使用thinkcmf開發了乙個企業 因為之前客戶的網域名稱變更過,然後就發現當某個模組不存在的時候就出現了空頁面 在 thinkphp論壇 上有人說在專案裡新增乙個emptyaction.class.php,然後再寫業務邏輯,結果搞了好長時間我一直都沒有找到action目錄 最後才發...

THINKPHP 解決模組不存在時出現空頁面的問題

遇到的問題 最近使用thinkcmf開發了乙個企業 因為之前客戶的網域名稱變更過,然後就發現當某個模組不存在的時候就出現了空頁面 在 thinkphp論壇 上有人說在專案裡新增乙個emptyaction.class.php,然後再寫業務邏輯,結果搞了好長時間我一直都沒有找到action目錄 最後才發...

存在還是不存在

又是一片安靜中醒來,又是乙個陰天,地面很濕潤,忽然有點秋天的感覺。昨天一天都進不來我的部落格,晚上剛進來寫了一篇小文緊接著就又是 找不到伺服器 到了深夜,終於可以上了,覺得自己長舒了一口氣。部落格依賴症。不過寫了半年多而已。依賴,一種要警惕的情緒,很容易使人沉迷,找不到自己。慌慌張張的日子終於過去了...