NarekNavoyan

Untitled

Aug 25th, 2023
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. ---
  2. marp: true
  3. theme: uncover
  4. class: invert
  5. ---
  6.  
  7. <style>
  8. p {
  9. font-size: 30px;
  10. }
  11. </style>
  12.  
  13.  
  14. # Kotlin - ֆունկցիաներ
  15.  
  16.  
  17. ---
  18.  
  19. ##### Պարզագույն ֆունկցիայի հայտարարումը
  20.  
  21. ```kotlin
  22. fun greet(): Unit {
  23. println("Hello!")
  24. }
  25. ```
  26.  
  27. նույնն է, թե
  28.  
  29. ```kotlin
  30. fun greet() {
  31. println("Hello!")
  32. }
  33. ```
  34.  
  35. նույնն է, թե
  36.  
  37.  
  38. ```kotlin
  39. fun greet() = println("Hello!")
  40. ```
  41.  
  42.  
  43. ---
  44.  
  45.  
  46. #### Պարամետր ընդունող ֆունկցիաներ
  47.  
  48. ```kotlin
  49. fun greet(name1: String, name2: String) {
  50. println("Hello $name1 and $name2!")
  51. }
  52. ```
  53.  
  54. ###### Կանչը
  55.  
  56. ```kotlin
  57. greet(name2 = "Sam", name1 = "Bob")
  58. ```
  59.  
  60. նույնն է, թե
  61.  
  62. ```kotlin
  63. greet("Bob", "Sam")
  64. ```
  65.  
  66.  
  67. ---
  68.  
  69.  
  70. #### Default պարամետրերով ֆունկցիաներ
  71.  
  72. ```kotlin
  73. fun greet(name1: String = "you", name2: String ="you") {
  74. println("Hello $name1 and $name2!")
  75. }
  76. ```
  77.  
  78. ###### Կանչը
  79.  
  80. ```kotlin
  81. greet() // Hello you and you!
  82. greet("Bob") // Hello Bob and you!
  83. greet(name2 = "Sam") // Hello you and Sam!
  84. greet("Bob", "Sam") // Hello Bob and Sam!
  85. ```
  86.  
  87.  
  88. ---
  89.  
  90.  
  91. #### Փոփոխական քանակով պարամետրեր
  92.  
  93. ```kotlin
  94. fun greet(vararg names: String) {
  95. println("Hello ${names.contentToString()}!")
  96. }
  97. ```
  98.  
  99. ```kotlin
  100. greet("Bob", "Sam") // Hello [Bob, Sam]!
  101. ```
  102.  
  103.  
  104. ---
  105.  
  106.  
  107. #### Արժեք վերադարձնող ֆունկցիաներ
  108.  
  109. ```kotlin
  110. fun square(x: Int): Int {
  111. return x * x
  112. }
  113. ```
  114.  
  115. ```kotlin
  116. fun square(x: Int) = x * x
  117. ```
  118.  
  119. ---
  120.  
  121.  
  122. #### Null safety պարամետրերի տիպերում և վերադարձվող արժեքի տիպում
  123.  
  124. ```kotlin
  125. fun foo(name: String?): String {
  126. return name // կոմպիլյացիայի սխալ
  127. }
  128. ```
  129.  
  130. ...
  131.  
  132.  
  133. ---
  134.  
  135.  
  136. ```kotlin
  137. fun foo(name: String?): String {
  138. return if (name != null) {
  139. // name: String? -> name: String
  140. name
  141. }
  142. else {
  143. "empty"
  144. }
  145. }
  146. ```
  147.  
  148. ```kotlin
  149. fun foo(name: String?): String {
  150. if (name == null) {
  151. return "empty"
  152. }
  153. // name: String? -> name: String
  154.  
  155. return name
  156. }
  157. ```
  158.  
  159.  
  160. ---
  161.  
  162. #### Extension ֆունկցիաներ
  163.  
  164. ```kotlin
  165. import java.util.Arrays // (!)
  166.  
  167. fun IntArray.grow(element: Int): IntArray {
  168. val elementIndex = size
  169. val result = Arrays.copyOf(this, index + 1)
  170. result[elementIndex] = element
  171. return result
  172. }
  173. ```
  174.  
  175. ```kotlin
  176. val array = intArrayOf(1, 2, 3)
  177.  
  178. val grownArray = array.grow(4)
  179.  
  180. println(grownArray.contentToString()) // [1, 2, 3, 4]
  181. ```
  182.  
  183.  
  184. ---
  185.  
  186.  
  187. #### Infix ֆունկցիաներ
  188.  
  189. ```kotlin
  190. import java.util.Arrays // (!)
  191.  
  192. infix fun IntArray.grow(element: Int): IntArray {
  193. val elementIndex = size
  194. val result = Arrays.copyOf(this, index + 1)
  195. result[elementIndex] = element
  196. return result
  197. }
  198. ```
  199.  
  200. ```kotlin
  201. val array = intArrayOf(1, 2, 3)
  202.  
  203. val grownArray = array grow 4
  204.  
  205. println(grownArray.contentToString()) // [1, 2, 3, 4]
  206. ```
  207.  
  208.  
  209. ---
  210.  
  211.  
  212. #### Օպերատորային ֆունկցիաներ
  213.  
  214. ```kotlin
  215. import java.util.Arrays // (!)
  216.  
  217. operator fun IntArray.plus(element: Int): IntArray {
  218. val elementIndex = size
  219. val result = Arrays.copyOf(this, index + 1)
  220. result[elementIndex] = element
  221. return result
  222. }
  223. ```
  224.  
  225. ```kotlin
  226. val array = intArrayOf(1, 2, 3)
  227.  
  228. val grownArray = array + 4
  229.  
  230. println(grownArray.contentToString()) // [1, 2, 3, 4]
  231. ```
Advertisement
Add Comment
Please, Sign In to add comment