tag:blogger.com,1999:blog-20941681.post6075155531481004851..comments2024-02-13T18:09:44.121+01:00Comments on Jacek Laskowski scala jawnie: Rozdział 6. o napisach w Groovy z "Programming Groovy"Anonymoushttp://www.blogger.com/profile/09734540973692423017noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-20941681.post-26206828121032059032011-03-11T21:30:01.538+01:002011-03-11T21:30:01.538+01:00Witam
Co do przykładu z closure to nie zadziała dl...Witam<br />Co do przykładu z closure to nie zadziała dla:<br /><br />funkcja null<br /><br />Sprawdzanie closure!=null jest zbędne, ponieważ instanceof zwróci zawsze false jak null przyjdzie.<br /><br />Wystarczy dać:<br /><br />def funkcja(domkniecie) {<br />if (domkniecie instanceof Closure) { <br />return domkniecie() <br />}<br /><br />println "Parametr wejsciowy typu: ${domkniecie?.class?.name}" // sprawdzanie null<br />}<br /><br />funkcja 3<br /><br />funkcja null<br /><br />funkcja()<br /><br />funkcja {<br /> funkcja 44<br />}<br /><br />Pozdrawiam<br />Andrzej JóźwikAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-20941681.post-40633535111787382242009-06-21T01:46:50.038+02:002009-06-21T01:46:50.038+02:00"Ala ma kota" ==~ /(\w+\s?){3}/
===> ..."Ala ma kota" ==~ /(\w+\s?){3}/<br />===> true<br />"Ala ma kota" ==~ /(\w+\s){2}\w+/<br />===> true<br />"Ala ma kota" ==~ /\w+ \w+ \w+/<br />===> trueAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-20941681.post-44061185832463189412009-06-18T20:47:38.030+02:002009-06-18T20:47:38.030+02:00Fajne są wyrażenia co? Mi szczególnie się podoba
...Fajne są wyrażenia co? Mi szczególnie się podoba <br /><br />def f = new File("c:/")<br /><br />f.eachFileMatch(~/.*\.ini/){<br /> println it<br />}<br /><br />:)<br /><br />Eksperymentowałem z domknięciami.<br />Na początek:<br /><br /><br />def x ={-> println "Hello world :)"}<br /><br />def ifClosure = {domniemane, reakcja -> <br /> if(domniemane != null && domniemane instanceof Closure ){<br /> reakcja()<br /> }<br />}<br /><br />ifClosure(x){<br /> println "Zaczynam zabawę"<br /> x()<br /> println "Koniec zabawy"<br />}<br /><br /><br />Proste i wiadomo co się stanie. Dobra a jeśli zrobimy tak:<br /><br /><br />Object.metaClass.ifClosure = {reakcja -> <br /> if(delegate != null && delegate instanceof Closure ){<br /> reakcja()<br /> }else{<br /> delegate<br /> }<br />}<br /><br />def y ={-> println "Hello world :)"}<br /><br />y.ifClosure{<br /> y()<br />}<br /><br />println "abc".ifClosure{<br /> ":)"<br />}<br /><br /><br />No i teraz zgadnij jak to się zachowa? Można używać GroovyConsole ;)<br /><br />Pozdrawiam,<br />Krzysztof KowalczykKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-92090880290115210942009-06-18T16:09:02.572+02:002009-06-18T16:09:02.572+02:00==~ operator requires an exact match of the whole ...==~ operator requires an exact match of the <b>whole</b> string.<br /><br />matcher = "Ala" ==~ /\w{3}/<br />True<br />matcher = "Alakot" ==~ /\w{6}/<br />True<br /><br /><br />matcher = "Ala ma kota" =~ /\w{3}/<br />matcher.size() // 2<br /><br />matcher = "Ala ma kota" =~ /\w{6}/<br />matcher.size() // 0<br /><br />To wam powinno pomóc :)pedrohttps://www.blogger.com/profile/13369794494885429065noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-90000923856069058162009-06-18T14:10:05.278+02:002009-06-18T14:10:05.278+02:00Próbowałem od 1 do 6 i nic. Przynajmniej będzie ok...Próbowałem od 1 do 6 i nic. Przynajmniej będzie okazja popróbować się z wyrażeniami regularnymi poznając Groovy.Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-3790645405517579092009-06-18T13:57:42.042+02:002009-06-18T13:57:42.042+02:00Odnosnie przykladu
matcher = "Ala ma kota&qu...Odnosnie przykladu <br />matcher = "Ala ma kota" ==~ /\w{6}/<br /><br />to przeciez \w dopasowuje sie do znaku slowa (alphanumeric or _), a w tym tekscie nie ma ciaglej sekwencji 6 takich wlasnie znakow.<br />Sprobuj z \w{4} i zadzialaswietyhttps://www.blogger.com/profile/12493399681395094428noreply@blogger.com