Groovy puzzlers по русски с Joker 2014
- 3. 1. Два клЕвых пацана на сцене
2. Прикольные загадки
3. Вы голосуете за правильный
ответ
4. Мы швыряемся вещами
5. Официальный хэш!
groovypuzzlers
- 15. println (-3).abs()
-3
Caught: java.lang.NullPointerException: Cannot invoke method abs() on null
object
java.lang.NullPointerException: Cannot invoke method abs() on null object
at AbsolutelyGroovy.run(AbsolutelyGroovy.groovy:7)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
- 16. “Все проблемы в программировании
можно решить добавив пару скобок”
John McCarthy, изобретатель LISP
- 19. boolean isPrime(def x) {
if (x == 2) return true
int limit = Math.sqrt(x) + 1
(2..limit).each {
if (x % it == 0) {
return false
}
}
true
}
println isPrime("4" as Double)
- 21. boolean isPrime(def x) {
if (x == 2) return true
int limit = Math.sqrt(x) + 1
(2..limit).each {
if (x % it == 0) {
return false
}
}
true
}
println isPrime("4" as Double)
- 22. boolean isPrime(def x) {
if (x == 2) return true
int limit = Math.sqrt(x) + 1
(2..limit).each {
if (x % it == 0) {
return false
}
}
true
}
println isPrime("4" as Double)
- 31. class Conference {def name; def year}
def gr = new Conference(name: 'Greach', year: 2014)
gr.each {println it}
- 35. List<Integer> list = [56, '9', 74]
def max = list.max { item ->
(item < 50) ? item : null
}
println max
- 36. List<Integer> list = [56, '9', 74]
def max = list.max { item ->
(item < 50) ? item : null
}
println max
- 38. List<Integer> list = [56, 57, 74]
def max = list.max { item ->
(item < 50) ? item : null
}
println max
- 40. List<Integer> list = [56, '9', 74]
def max = list.max { item ->
(item < 50) ? item : null
}
println max
- 42. def random = new Random()
def randomList = []
0..10.each {randomList << random.nextInt()}
assert randomList.max{ null } == randomList[0]
- 49. class CountDown { int counter = 10 }
CountDown finalCountDown() {
def countDown = new CountDown()
try {
countDown.counter = --countDown.counter
} catch (ignored) {
println "That will never happen."
countDown.counter = Integer.MIN_VALUE
} finally {
return countDown
}
}
println finalCountDown().counter
- 50. class CountDown { int counter = 10 }
CountDown finalCountDown() {
def countDown = new CountDown()
try {
countDown.counter = --countDown.counter
} catch (ignored) {
println "That will never happen."
countDown.counter = Integer.MIN_VALUE
} finally {
return countDown
}
}
println finalCountDown().counter
- 52. class CountDown { int counter = 10 }
CountDown finalCountDown() {
def countDown = new CountDown()
try {
countDown.counter = --countDown.counter
} catch (ignored) {
ignored.printStackTrace()
countDown.counter = Integer.MIN_VALUE
} finally {
return countDown
}
}
println finalCountDown().counter
org.codehaus.groovy.runtime.typehandling.GroovyCastException:
Cannot cast object '9' with class 'java.lang.Integer' to class 'CountDown’
-2147483648
- 55. class CountDown { int counter = 10 }
CountDown finalCountDown() {
def countDown = new CountDown()
try {
countDown.counter = --countDown.counter
} catch (ignored) {
println "That will never happen."
countDown.counter = Integer.MIN_VALUE
} finally {
return countDown
}
42
}
println finalCountDown().counter
- 56. class CountDown { int counter = 10 }
CountDown finalCountDown() {
def countDown = new CountDown()
try {
countDown.counter = --countDown.counter
} catch (ignored) {
println "That will never happen."
countDown.counter = Integer.MIN_VALUE
} finally {
return countDown
}
42
}
println finalCountDown().counter
- 61. trait Public {
public String property = "I am all public!"
}
class Property implements Public {}
Property publicProperty = new Property()
- 62. trait Public {
public String property = "I am all public!"
}
class Property implements Public {}
Property publicProperty = new Property()
- 65. А ты документацию
читать не пробовал???
http://beta.groovy-lang.org/docs/groovy-2.3.0/html/documentation/core-traits.html
- 67. def key = 'x'
def map = [key: 'treasure']
def value = map.get(key)
println value
- 68. def key = 'x'
def map = [key: 'treasure']
def value = map.get(key)
println value
- 71. 1.def map = [(key): 'treasure']
2.map.put(key, 'treasure')
3.map[key] = 'treasure'
4.map." " = 'treasure'
- 73. def map = [2: 'treasure']
def key = 2
def value = map."$key"
println value
- 74. def map = [2: 'treasure']
def key = 2
def value = map."$key"
println value
- 76. def map = [2: 'treasure']
println map.keySet().first().class.name
java.lang.Integer
- 78. def key = 'x'
def map = ["${key}": 'treasure']
def value = map['x']
println value
- 79. def key = 'x'
def map = ["${key}": 'treasure']
def value = map['x']
println value
- 81. def map = ["${key}": 'treasure']
println map.keySet().first().class.name
org.codehaus.groovy.runtime.GStringImpl
- 83. def range = 1.0..10.0
assert range.contains(5.0)
println range.contains(5.6)
- 88. Iterator iterator = (1.0..10.0).iterator()
while (iterator.hasNext()) {
print "${iterator.next()} "
}
1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
- 111. List<Long> list = [1,2,3]
def now = new Date()
list << now
list << 'foo'
println list*.class.name
[java.lang.Long, java.lang.Long,
java.lang.Long, java.util.Date,
java.lang.String]
- 123. class Invite {
int attending = 1
}
def invite = new Invite()
def attendees = (invite.attending) +1
println attendees
- 124. class Invite {
int attending = 1
}
def invite = new Invite()
def attendees = (invite.attending) +1
println attendees
- 131. def invite = new Invite()
def attendees = invite.attending +1
Как убрать скобки?!
- 133. class MrHyde {
def me() {
return this
}
}
class DrJekyll {
}
DrJekyll.mixin MrHyde
def drJekyll = new DrJekyll().me() as DrJekyll
def mrHide = new DrJekyll().me()
println "$drJekyll and $mrHide, are they the
same? ${(drJekyll.class).equals(mrHide.class)}"
- 134. class MrHyde {
def me() {
return this
}
}
class DrJekyll {
}
DrJekyll.mixin MrHyde
def drJekyll = new DrJekyll().me() as DrJekyll
def mrHide = new DrJekyll().me()
println "$drJekyll and $mrHide, are they the same?
${(drJekyll.class).equals(mrHide.class)}"
- 140. def x = int
println x
if ((x = long)) {
println x
}
if (x = boolean ) {
println x
}
- 141. def x = int
println x
if ((x = long)) {
println x
}
if (x = boolean ) {
println x
}
- 146. class VanHalen {
public static jump() {
"Here are the ${lyrics()}"
}
def methodMissing(String name, def args) {
'lyrics'
}
}
println VanHalen.jump()
- 147. class VanHalen {
public static jump() {
"Here are the ${lyrics()}"
}
def methodMissing(String name, def args) {
'lyrics'
}
}
println VanHalen.jump()
- 152. class VanHalen {
public static jump() {
"Here are the ${lyrics()}"
}
static $static_methodMissing(String name, def args) {
'lyrics'
}
}
println VanHalen.jump()
- 153. class VanHalen {
public jump() {
"Here are the ${lyrics()}"
}
def methodMissing(String name, def args) {
'lyrics'
}
}
println new VanHalen().jump()
- 155. def map = [metaClass: ‘frequency']
println "What's the $map.metaClass, Барух?"
- 161. 1. Пишите читабельный код
2. Комментируйте все трюки
3. Иногда это баг
4. Пользуйте static code analysis - intellij
IDEA!
5. Rtfm
6. Don’t code like my brother
- 162. Мы только начали! (надо еще
форму придумать)
Засылайте Ваши паззлеры, поделки
и рисунки
- puzzlers jfrog.com
- Groovypuzzlers
- 164. Вам понравилось?
Хвалите нас в твиттере
groovypuzzlers
- Groovypuzzlers
- jekaborisov
- jbaruch
Вам не поравилось?
/dev/null