好了,开始学习kotlin的语法
首先说明,在不熟悉kotlin的情况下,可以使用java转kotlin的方式,了解两种语言的转换,就是先写java代码,然后
通过code----convert java file to kotlin file来查看对应的kotlin代码,非常好用,但是没有 kotlin转java的方法,非常遗憾,可能也是为了google逼着用kotlin吧
不管他,接下来,就按照创建项目的顺序来
1.首先要创建类:右击,创建kotlin类,分两种,一个是kotlin activity 一个是kotlin class,这俩其实没区别,kotlin activity只是直接给你建好了类和继承了
AppCompatActivity(),kotlin class只是建立了一个空的文档,所以,刚建立的时候是这样的
跟其他的不一样图标,其实是因为你没有在里面写代码,创建类呢,你建好了类,就变成正常的样子了。这里说一句,类的继承是使用 : 代替extends,而且继承的类是要带上()的,比如继承Fragment ,是下边的,Fragment是要带上()的。
class FragmentJava : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle): View? { val view = inflater.inflate(R.layout.activity_main, null) return view } }再继续,先学习语法。
2.最基础的,就是定义变量和常量:
val是常量,相当于java 的final。比如 val a=1;这个a就是1了,是不可更改的。后边你再来a=2;就会报错
var是变量,比如var a=1;a是可以更改的,后边可以给a赋值,a=2;a=3都行。
那么这个a是什么类型呢,kotlin设置了自动识别 的功能,当你不给赋值类型时,就自动识别,如果想要设置,可以这样设置 var a:Int=1;冒号后边的Int就是他的类型,kotlin的类型放在了变量的后边。这里不得 不提一句,kotlin的很多值方式都是跟java相颠倒,java是 int a=1;这边就是a:int=1;牢记这个对学习kotlin有帮助。
3。就android来说,用的最多的不是数组,而是ArrayList集合,当在是studio上使用ArrList的时候,做全局定义和初始化,是这样的:
java是这样的:
public class MyTest extends Activity { private ArrayList<String> arr; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); arr = new ArrayList<String>(); arr.add(""); arr.add(""); arr.add(""); for (int i = 0; i < arr.size(); i++) { Log.i("", "arr[i]====" + arr.get(i)); } } }kotlin是这样的:
class MyTest : Activity() { private var arr: ArrayList<String>? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arr = ArrayList<String>() arr!!.add("") arr!!.add("") arr!!.add("") for (i in arr!!.indices) { Log.i("", "arr[i]====" + arr!![i]) }我是将java代码直接转换成kotlin代码,,初始化时候的?号是说集合可以为空, arr!!后面的!!号是说一旦arr为空,则抛异常。下面是两种for循环方式,后边记录for ((i, value) in arr!!.withIndex()) { Log.i("TAG", "i:$i,value:$value"); }}}
接下来参考下http://blog.csdn.net/to_yan/article/details/51881818