root@sw-server:~/v_test# cat hi.v
//結構體
struct point
/*struct foo
*///結構體-方法
struct user
//(u user) u 相當於self or this
/*v 沒有 class概念,但是我們可以在結構體上定義方法。
方法是具有特殊行參的函式。特殊行參 放在 fn關鍵字 和方法名之間的引數列表中。
簡單示例(can_register 方法具有 user 型別的 特殊行參 u):
不和其他語言一樣,使用 self 或 this ,而是使用短名稱,當然最好乙個字母長
*/fn (u user) can_register() bool
/*純函式
v語言的函式預設是純函式,也就是函式的輸出結果只依賴輸入的引數,並且沒有其它的影響。
因為v語言沒有全域性變數,且所有的引數預設都是唯讀的,即使傳入的引用也是預設唯讀的。
然後v語言並不純的函式式語言。我們可以通過mut來修飾行引數,使得可以被修改:
*/fn (u mut user) register()
struct color
fn (c color) str() string'}
fn rgb(r,g,b int) color }
//常量
const(
numbers = [1,2,3]
red = color
blue = rgb(0,0,255)
)fn main()
println(p.x)
println(p.y)
p1 := &point
println(p1.x)
println(p1.y)
mut user := user
mut user1 := user
println(user.is_registered)
println(user1.can_register())
user.register()
println(user.is_registered)
println(numbers)
println(red)
println(blue)
}
root@sw-server:~/v_test# cat inte***ce.v
//inte***ce 介面
struct dog{}
struct cat{}
fn (d dog) speak() string
fn (c cat) speak() string
inte***ce speaker
fn perform(s speaker)
//列舉
enum color
//可選型別 和 錯誤處理
struct user
struct repo
fn new_repo() repo,user,user]
}}fn (r repo) find_user_by_id(id int)
}return error('user $id not found')
}fn main()
cat := cat{}
perform(dog)
perform(cat)
mut color := color.red
println(color)
color = .green
println(color)
repo := new_repo()
user := repo.find_user_by_id(10) or
println(user.id)
println(user.name)
}
我是如何用三小時搞出個賺錢產品的?
今天keynotopia 乙個現成iphone ipad ui模版分享 使用者可以拿來直接套用在自己應用上來測試應用的視覺創意怎麼樣 上線已經兩個月了,從去年7月乙個簡單的部落格變成現在頭60天擁有1500多個顧客,連我自己都沒想到過。在講今天的創業故事之前,我們先來回顧一下它的幾個關鍵資料 我的創...
寫BUG三分鐘,滌BUG三小時
寫完函式 板子,根本沒有構造需要的陣列結果在下面天花亂墜的使用 常見ac自動機不構造,字尾陣列不夠早,回文樹不構造,尤拉篩不構造,這個錯誤 多組輸入沒有初始化 修改 的時候只修改部分少修改了一些東西,證明 整體關聯性不夠強,這個錯誤非常致命,一般都是最後對這別人的 才能發現,需要把這個錯誤深深印到潛...
使用Symfony 2在三小時內開發乙個尋人平台
簡介 symfony2是乙個基於php語言的web開發框架,有著開發速度快 效能高等特點。但symfony2的學習曲線也比 較陡峭,沒有經驗的初學者往往需要一些練習才能掌握其特性。本文通過乙個快速開發尋人平台的例項向讀者介紹 symfony2框架的一些核心功能和特點。通過閱讀本文,你可以通過一些具體...