kotlin的let run apply also等等學習記錄
好久沒有更新啦,今天學習了一些kotlin的語法
class MainActivity : AppCompatActivity() { private val testArray: ArrayList<String> by lazy { ArrayList<String>() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Log.i("hello", "let = " + testLet().toString()) Log.i("hello", "apply = " + testApply().toString()) Log.i("hello", "with = " + testWith()) Log.i("hello", "run = " + testRun()) testRun2() testAlso() testRepeat() Log.i("hello", "takeIf = " + testTakeIf()) Log.i("hello", "takeUnless = " + testTakeUnless()) 6.takeIf { it < 7 }?.let { compareValues(1, 2) Log.i("hello", "2 method = $it") } } private fun testLet(): ArrayList<String> { //T.let 將T作為it,let的返回值為函式體內最後一條語句的返回值 testArray.let { it.add("let1") it.add("let2") Log.i("hello", it.toString()) return it } } private fun testApply(): ArrayList<String> { //T.apply T將函式體中的每一條語句按順序執行,返回T return testArray.apply { add("apply3") add("apply4") add("apply5") remove("let1") Log.i("hello", "apply this=" + this) } } private fun testWith(): Boolean { //with(T) 將函式體中的每一條語句按順序執行,返回值為函式體內最後一條語句的返回值 return with(testArray) { add("with6") add("with7") remove("apply8") } } private fun testRun(): Int { //T.run T將函式體中的每一條語句按順序執行,返回最後一條語句的返回值 return testArray.run { add("run9") add("run10") Log.i("hello", "run this=" + this) remove("let1") compareValues(3, 4) } } private fun testRun2() { //kotlin中的run函式,返回最後一句語句的返回 var i = 1 val date = kotlin.run { i++ Date() //compareValues(2,3) } Log.i("hello", "run2 = $date") } private fun testAlso() { //T.also T作為it,返回T val also = Date().also { Log.i("hello", "also this = $it") testArray.add("also11") } Log.i("hello", "also = $also") } private fun testRepeat() { //其中it為次數,如此處i分別為 0,1,2 repeat 返回Unit repeat(3) { Log.i("hello", "repeat = $it") } } private fun testTakeIf(): Int? { //T.takeIf 當T滿足if條件時返回T,否則返回null return 6.takeIf { it < 5 } } private fun testTakeUnless(): Int? { //T.takeIf 當T不滿足條件時返回T,滿足條件返回null return 6.takeUnless { it < 5 } } }
自己動手實現一下,感覺理解了一些,一起加油鴨~
相關推薦
kotlin的let run apply also等等學習記錄
好久沒有更新啦,今天學習了一些kotlin的語法 class MainActivity : AppCompatActivity() { private val testArray: ArrayList<String> by lazy { ArrayLi
docker學習記錄一 --- docker run -d -p 80:80 --name webserver nginx 執行錯誤
Mac 安裝docker方式進行安裝測試(https://yeasy.gitbooks.io/docker_practice/install/mac.html),遇到以下問題,並進行記錄~問題一
Android應用基礎學習記錄
應用 ctp 例如 case 推薦 都沒有 變量命名規則 bytearray href 01_前言 前言,了解了Android的情況。這裏也介紹一下本文。本文是記錄學習Android應用程序開發過程,視頻中使用的Android2.2版本號,我以4.2版本號為基礎,找
[QT][SQL]sq]學習記錄1_模糊搜索
學習網 cnblogs src from log 搜索數據 城市 like .cn sql學習網站: http://www.w3school.com.cn/sql/index.asp 用於模糊搜索數據庫的數據 語句:http://www.w3school.com.cn/
學習記錄: 安裝配置自動化工具ansible
ansible學習記錄: 安裝配置ansible更新日期: 2016-11-30系統環境 :centos6.5本機ip :192.168.233.123被管理機ip :192.168.233.124—————————————————————————————————————py版本
IPProxyPool學習記錄
lib pip3 figure python3 amp library 學習 多版本 not find python3下 import sqlite3 報錯: NO module named ‘_sqlite3‘ 是因為多版本ptyhon問題,需要重新編譯python 步驟
$http學習記錄
google div 好的 pca .site log 文檔 方法 教程 火狐的網址可以直接寫文件的地址 如:D:\studyprogram\wamp\www\http.html 其他的要改成服務器下的地址 如 http://localhost\http.html 廢棄聲
tolua.setpeer學習記錄
lua 記錄 如果 進棧 get string use 輕量 peer static int tolua_bnd_setpeer(lua_State *L) { // stack: userdata, table if (!lua_isuserdata(
android adb shell and monkey 學習記錄
型號 orm -a reboot 觸摸事件 serial roc ear cpu Monkey環境: android SDK and JDK SDK目錄下的platform-tools和tools目錄要配置環境變量 查看版本: ADB 的安裝這裏就
前端學習記錄
webkit 移除 posit settime 支持 執行 rul 方法 可能 總結一下這幾天跟前輩學的新知識: 1.吸頂效果,普通的做法是在onscroll函數中監聽滾動距離,如果滾動超過導航條高度,則將導航條的class添加.fixed。但是ios6+設備下的瀏覽器會在
即時通信常見的幾種方式,此處只做學習記錄
維護 時間 最簡 安裝 記錄 htm websocket 雙向 new 1. 輪詢 利用ajax每隔一段時間就請求一次服務器,服務器返回數據。 優點:最簡單的解決方案 缺點:對服務器壓力很大,浪費帶寬 2. 長輪詢 利用ajax請求服務器,當有數據變化
2017.5.23 -- 學習記錄
cal 根據 stub roi post 顯示 技巧 每日 記錄 學習目錄: 1.ViewStub Android :不占空間和性能的根據不同情況顯示不同的布局。 2.android 中的merge標簽: 在include布局中的根布局可以使用這個merge,系統遇
Python學習記錄-socket編程
pythonPython學習記錄-socket編程學習 python socketPython學習記錄-socket編程1. OSI七層模型詳解2. Python socket3. socket()函數4. TCP socket通信流程5. Python Internet 模塊1. OSI七層模型詳解以上圖見
2017-5-29學習記錄——WebApi(1)
ora 必須 eache 配置 person span eve gen 流行 曾經我一直認為Web服務器的Api使用ashx或ASP.NET MVC中返回JsonResult來實現的。 當我第一次接觸WCF的時候,有同學告訴我目前比較流行WebApi和WebSocket了,
Python學習記錄day5
process its 定義 return 不能 自己 多層裝飾器 環比 方式 1.多層裝飾器 多層裝飾器的原理是,裝飾器裝飾函數後,其實也是一個函數,這樣又可以被裝飾器裝飾。 編譯是從下至上進行的,執行時是從上至下進行。 #!/usr/bin/env python #
vue.js 學習記錄(二)
分離 理解 foo 選項 這也 lsp 生效 html標簽 tro 原文連接:http://www.cnblogs.com/keepfool/p/5625583.html 組件 #註冊組件 Vue.component(‘my-component‘, { // 選項
視頻學習記錄dya01
工作心態 老男孩 學習心態 2017年3月1日 21:00-23:002017年3月2日 21:00-23:00 學習思想:1、多在學習和使用中記憶 不要死記硬背 理解知識背後的原理2、通過案例去記憶、對聯、相聲。 3、靠多練習去記憶4、重復練習,多思考什麽是掌握技術的關鍵李小龍說:他不
視頻學習記錄和規劃day08
考試題目 記錄 應用層 網絡 模型 規劃:2017-4-24 周一 第5章前2h2017-4-25 周二 第5章中2h2017-4-26周三 第5章 後2h tcp三次握手和子網劃分等2017-4-27周四 第6章 2h2017-4-28周五 第6-7閉卷考試 錄屏 以及第7章考試題目講
Centos7.3 Docker安裝部署學習記錄1
docker一、Docker基礎環境的安裝1. 環境說明本機采用操作系統如下: CentOS-7.3-X86-64,內核3.10 x64位,docker 1.12.x版本。 建議采用CentOS7版本或ubuntu版本,本文采用CentOS7即CentOS-7-x86_64-DVD-1611.iso版本最
視頻學習記錄day09
awk sed  123 123 123""‘>&&<""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""