Niedawno widziałem kilka pytań na temat SO, które zadały pytanie, czy możesz stworzyć program Hello World bez użycia średników za pomocą C #. Wyzwanie polega na zrobieniu tego ponownie, ale przy możliwie jak najkrótszym kodzie!
Zakładam, że ma to być wyzwanie specyficzne dla języka? W przeciwnym razie istnieje wiele języków, w których to zadanie byłoby banalne. (Na przykład 'Hello World'jest to prawidłowy program do drukowania w GolfScript Hello World. Chociaż HQ9 + z łatwością go pokona.)
Ilmari Karonen,
@llmari Przepraszamy, tak, zaktualizowałem pytanie. Oznacziłbym go jako C #, ale nie istnieje i nie mam przedstawiciela, który mógłby go utworzyć, dzięki.
Bali C
Odpowiedzi:
12
C #, 76
class X{static void Main(){if(System.Console.Write("Hello, World!")is X){}}}
Próbowałem tego w moim VS2012 i działa dobrze, mimo że jest dość niespodzianką, że można zastosować isoperatora do void...
class M{static void Main(){if(typeof(System.Console).GetMethods()[78].Invoke(null,new[]{"Hello, world!"})is M){}}}
Zauważ, że właściwy indeks dla Write(string)/ WriteLine(string)może być inny w twoim systemie. Jednakże, ponieważ istnieją tylko 106 Metody sumie jestem prawie pewien, albo Write(string)czy WriteLine(string)będzie dwucyfrowy numer indeksu na każdym systemie, więc liczba znaków powinny być generalnie zachowują ważność.
Pomyślałem też, że to ironiczne, że po złożeniu wyszło dokładnie 1 postać krótsza niż twoja :)
mellamokb
7
Można zapisać trzy znaki, zmieniając nullna 0. Zdobądź niezłą liczbę znaków 111 :)
Timwi
8
115 bajtów
class H{static void Main(){if(((System.Action)(()=>System.Console.Write("Hello, world!"))).DynamicInvoke()is H){}}}
Prawdopodobnie możliwe jest wyprodukowanie czegoś nieco krótszego, ale jestem prawie pewien, że będziesz potrzebować wykonać jakieś asynchroniczne połączenie.
'Hello World'
jest to prawidłowy program do drukowania w GolfScriptHello World
. Chociaż HQ9 + z łatwością go pokona.)Odpowiedzi:
C #, 76
Próbowałem tego w moim VS2012 i działa dobrze, mimo że jest dość niespodzianką, że można zastosować
is
operatora dovoid
...źródło
Znaki C # 85
źródło
C # (114)
Zauważ, że właściwy indeks dla
Write(string)
/WriteLine(string)
może być inny w twoim systemie. Jednakże, ponieważ istnieją tylko 106 Metody sumie jestem prawie pewien, alboWrite(string)
czyWriteLine(string)
będzie dwucyfrowy numer indeksu na każdym systemie, więc liczba znaków powinny być generalnie zachowują ważność.Demo: http://ideone.com/5npky (
Write
metoda najwyraźniej tutaj znajduje się indeks 23)źródło
null
na0
. Zdobądź niezłą liczbę znaków 111 :)115 bajtów
Prawdopodobnie możliwe jest wyprodukowanie czegoś nieco krótszego, ale jestem prawie pewien, że będziesz potrzebować wykonać jakieś asynchroniczne połączenie.
źródło
C #
969594 znakiTrochę oszukiwać, ale działa, jeśli masz zainstalowany IronRuby:
źródło
==
jednoznakowym operatorem porównania.puts
ciągiem a łańcuchem.puts'Hello World'
jest poprawnym kodem ruby