Kotlin Programlama Dili #6

noktalıvirgül

Deneyimli Moderatör
17 Kas 2020
923
510

Kotlin Operatörler ve Anahtar Kelimeler

Sevgili okurlarımız, bugünkü konumuzda anahtar kelimelere ve bazı örnek kodlara yer veriyoruz. Burada ifade edilen belirteçler, anahtar kelime olarak yorumlanır, tanımlayıcı olarak kullanılmaz. Şimdi bazı ifadelerin açıklanmasına başlayalım:

as=> Tip dökümleri için kullanılır. (Kotlin’de bir nesnenin tipi konusunda tip kontrolleri yapılabilir. Tip dönüşümleri yapıldığında nesneler de farklı bir türe dönüşür.

Kotlin’de güvenli olmayan cast işlemi infix operatörü olan as ile yapılır.

Kod:
val x: String = y as String

Ayrıca içe aktarmak için takma ad belirtilir. İstisnalardan kaçınmak için de olumsuzluk durumunda geri dönen güvenli atama operatörü as olarak adlandırılır.



as?=> Güvenli tip dökümler için kullanılır. istisnalardan kaçınabilmek için başarısızlık halinde geri dönen güvenli atama operatörü olarak ifade edilen “güvenli” (null yapılabilir) yayınlama operatörüdür.

Kod:
Val x : String? = y as? String

Bu operatör, dönüşüm başarılı olursa istenilen tipe dönüştürür, fakat başarısızlık yaşandığında “null” döner. Böylece hata ayıklama kolaylaşır.

in=> Bu belirteç, for döngüsünde yenilenen nesneyi belirtir. Yineleyicilik sağlayan durumlar boyunca yinelenir. Bir değerin hangi aralığa, koleksiyona, “içerir” yöntemini ifade eden başka bir duruma ait olup olmadığının kontrolü için bir infix operatörü olarak ve aynı amaç için kullanılan ifadelerde kullanılır. Tür parametresini kontravaryant (karşı değişkin) olarak işaretleyebilir.

!in=> Bir değerin bir aralığa, koleksiyona, “içerir” yöntemini tanımlayan başka bir duruma ait olmadığının kontrolü için kullanılan bir operatördür. Ayrıca aynı amaç için kullanılan ifadelerde kullanılır.

break=> Bir döngüyü sonlandırır.

İnterface=> Bu belirteç bir arayüz bildirir. Kotlin’deki arayüzler, hem yöntem uygulamaları hem de soyut yöntemlerin bildirimlerini içerebilir. Arayüzün tanımlanması, interface anahtar kelimesi ile sağlanır.

Kod:
İnterface MyInterface {

Fun bar()

Fun foo () {

Foo optimal body

}

}

İs=> Bir nesnenin bir türe uygun olup olmadığını kontrol eder ve bu denetimi gerçekleştirmek için kullanır. Aynı amaç için kullanılan ifadelerde kullanılır.

Kod:
İf (obj is string) {

print (obj.lenght)

}

İf (obj! İs string) {

print (“Not a string”)

} else {

Print (obj.lenght)

}

!is=> bir nesnenin belirli bir türe sahip olmadığını kontrol eder. “is” belirteci gibi, aynı amaç için kullanılan ifadelerde kullanılır. (is’in olumsuzudur)

class => Sınıf belirtir. Kotlin’deki sınıflar anahtar kelime kullanılarak bildirilir.

Örnek kod:

Kod:
class Person { /*…*/ }

Sınıf bildirimi şunlardan oluşur; sınıf adı, sınıf başlığı, süslü parantezlerle çevrilen sınıf gövdesi. Sınıfın gövdesi yoksa küme parantezleri kullanılmayabilir.

Örnek kod:

Kod:
class Empty

Null=> Herhangi bir nesneye işaret etmeyen bir sabittir.

Object=> Anonim sınıfların (bildirimle açıkça ifade edilmeyen sınıfların) nesnelerini oluşturur. Bu tür sınıflar tek seferlik kullanım konusunda faydalıdır. Nesne ifadeleri, “object” anahtar kelimesiyle başlar.

Kod:
Val hello Word = object {

Val hello = “Hello”

Val Word = “Word”

// Object (nesne) ifadeleri herhangi birini genişletir, bu yüzden “toString()” üzerinde “geçersiz kılma” (override) gereklidir.

Override fun toString() = “$hello $word”

}

Print(HelloWord)


This=>Geçerli bir alıcıyı ifade etmek için kullanılır. Yani bir sınıfın bir üyesindeki geçerli nesneyi belirtir. Bir genişleme fonksiyonunda veya alıcılı bir fonksiyon değişmezi, bir noktanın sol tarafında belirtiler alıcı “this” parametresini ifade eder. Niteleyicileri yoksa da en içteki kapsam this anlamını taşır. Diğer kapsamları belirtmek için etiket niteleyicileri kullanılır. Bu da this’dir.

This ile dış kapsamdan erişmek için kapsamdaki bir etiketin (“this@label”) nerede olması gerektiği belirlenebilir. Burada bahsedilen erişim işlevi; bir sınıf, uzantı işlevi, alıcı ile değişmez etiketli işlev olabilir. Buradaki uygulama işlevi kavramı, bir sınıfın veya arayüzün yeni işlevselliklerle genişletilmesini ifade eder. Bu da uzantı (extensions) adındaki özel bildirimlerle yapılır. Örneğin; üçüncü taraf bir kitaplıktan bir sınıf veya arayüz için değiştirtilemeyecek yeni işlevler yazılabilir ve bu işlevler çağrılabilir. Bu, mekanizma ya da uzatma işlevi adını alır. Alıcı işlev türleri, işlev değişmezlerinin özel biçimiyle (alıcılı işlev değişmezleri) açıklanabilir.

this@label ile ilgili örnek kod:

Kod:
Class A { // Örtülü etiket@A

İnner class B { //Örtülü etiket @B

Fun Int.foo() { // Örtülü etiket [USER=51201]@foo[/USER]

Val a = this@A

Val b = this@B

Val c = this // foo()’nun alıcısı bir Int.

Valc1 = this@foo’nun alıcısı bir Int.

val funLit = lambda@ fun String.() {

val d = this // FunLit’in alıcısı bir String

}

val funLit2 = { s: String ->

// foo()’nun alıcısı, lambda ifadesini içerdiğinden //beri herhangi bir alıcısı yok

val d1 = this

}

}

}

}

This, ayrıca ikincil bir kurucudan başka bir kurucuyu çağırır. Bu çağırdığı kurucu aynı sınıftandır. Kotlin’de bir sınıfın bir birincil yapıcısı; bir veya daha fazla da ikincil yapıcısı vardır. Birincil yapıcı, sınıf başlığında bildirilir, ayrıca sınıf adından ve isteğe bağlı tür parametrelerinden sonra gelir.

Kod:
Class person constructor (firstName : String) {/*…*/}

Package=> Geçerli dosyanın paketini belirtir. Bir kaynak dosya, bir paket bildirimiyle başlayabilir.

Package org.example

Fun printMessage () {/*…*/}

Class Mesaage /*…/*}

Kaynak dosyanın sınıfları da işlevleri de tüm içerikleri de bu pakete dahildir. Yukarıdaki örnek kod bloğunda , is’in tam adı printMessage () is’in org.example.printMessage tam adı, .Message org.example.Message. Eğer paket belirtilmemişse bu dosyanın içeriği varsayılan pakete aittir.

Return=> Çevreleyen işlevden veya anonim işlevden döner

Kod:
Val s = person.name? : return

Süper=> Yöntemlerin veya özelliklerin üst sınıf uygulamasını belirtir. Üst sınıf yapıcısını ikincil kurucudan çağırır. Türetilmiş sınıftaki kod, üst sınıf işlevleri ve özellik erişimci uygulamalarını çağırabilir. Bu çağırma işlevi anahtar kelime kullanılarak olabilir.

Kod:
Open fun draw() { println(“Drawing a rectangle”) }

Val borderColor : String get() =”black”

}

Class FilledRectangle : Rectangle() {

Override fun drive() {

Süper.draw()

Println(“Filling the rectangle”)

}

valfillColor : String get() = süper.borderColor

}

Bir iç sınıfta, dış sınıfın üst kısmına erişim, “super” dış sınıf adını ifade eden anahtar kelime ile yapılır. (super@Outer)

Kod:
Class FilledRectangle : Rectangle () {

Override fun draw() {

Val filler = Filler()

Filler.drawAndFill()

}

İnner class Filler {

Fun fill() {println(“Filling”) }

Fun drawAndFill()

[email protected]() // Rectangle’ın Draw() uygulamasını doldurmak.

Println (${[email protected]} rengiyle dolu bir dikdörtgen çizildi)

// Rectangle’ın borderColor’ın get() uygulamasını kullandı

}

}

}

Fun main() {

Val fr = FilledRectangle()

Fr.draw()

}

Var=> Değiştirilebilir bir özellik ve yerel değişken bildirebilir. (Bununla ilgili örnek kodlar daha önce yazılmıştır.)

When=> Birden çok dal içeren koşullu ifade tanımlar.

Kod:
When(x) {

1-> print(“x == 1”)

2-> print(“x == 2”)

Else -> {

Print(“x is neither 1 nor 2”)

}

}

When, bazı dallanma koşulları oluşana kadar bağımsız değişkeni tüm dallarda eşleştirir. Bir ifade olarak kullanılırsa eşleşen ilk dal değeri, genel ifadenin değeri olur.

While=> Ön koşullu bir döngü başlatır. Durumu karşılanıncaya kadar gövdeyi sürekli çalıştırırlar. while ve do-while arasındaki fark, durum kontrol süresidir. “while”, koşulu kontrol eder, eğer koşul sağlanırsa gövdeyi çalıştırır. Sonra koşul kontrolüne geri döner. “do-while” gövdeyi çalıştırdıktan sonra durumu kontrol eder. Eğer uygun olursa döngü tekrarlanır. Gövde, do-while durumuna bakılmaksızın en az bir kez çalışır.

Kod:
While (x>0) {

x--

}

do {

val y = retrieveData()

} while (y != null) // y, burada görünüyor.

Continue=> çevreleme döngüsünün bir adım sonrasına geçer (???^^^^)Returns and jumps | Kotlin

Do=> bir döngü başlatır, Bu döngü, do/while döngüsüdür ve sonkoşullu bir döngüdür. While, koşulu kontrol eder, koşul sağlanırsa gövdeyi çalıştırır ve sonra koşul kontrolüne geri döner. Do/while de gövdeyi çalıştırır, sonra durumu kontrol eder. Do-while döngü yapısı, do {işlemler;}while(koşul); şeklindedir. Döngü, bir kez işletilir ve while koşulunun kontrol edilmesi önem taşır. Eğer koşul doğruysa döngü devam eder; yanlışsa döngüden çıkılır.

Else=> koşul yanlış olursa yürütülen if ifadesinin bir dalını if bir değer döndürür.

Örnek kod:

Kod:
Var max = a

İf (a < b) max = b

// else ile

İf ( a > b) {

Max = a

} else {

Max = b

}

Max = if ( a > b) a else b

//else if ifadesi de kullanılabilir

Val maxLimit = 1

Val maxOrLimit = if (maxLimit > a) maxLimit else if ( a > b) a else b

Ayrıca if ile ifadenin blokları belirlenebilir. Böylece son ifade de bloğun değerini oluşturur.

Örnek Kod:

Kod:
Val max = if ( a > b) {

Print (“Choose a”)

A

} else {

Print (“Choose b”)

B

}

İf, değer döndürmek veya değişkene atamak için kullanılıyorsa else dallanması gerekir.

False=> Blooen türünün yanlış değerini ifade eder. blooen de iki değere sahip olan boole nesnelerini yani true ve false’u temsil eder. blooen’larda yerleşik işlemler kullanılır ve anlamları şöyledir:

|| : (mantıksal VEYA)

&& : (mantıksal VE)

! : olumsuzluk (mantıksal DEĞİL)

Örnek kod:

Kod:
Val myTrue : Boole = doğru

Val myFalse : Blooen = false

Val boolNull : boolean ? = boş

Println ( myTrue || myFalse )

Println (myTrue && myFalse )

Println ( ! myTrue )

For=> bir for döngüsü başlatır. Yenileyicilik sağlar ve yenilenir bir döngü oluşturur.

Örnek kod:

Kod:
For (item in collection) print(item)

Fun=> bir fonksiyon bildirmektedir.

Örnek kod:

Kod:
Fun hasPrefix(x: Any) = when(x) {

İs String -> x.starWith(“prefix)

Else-> false

Bu seri konumuzda özet şekilde kod ifadeleri işlemeye çalıştık, gelecek konumuz için eklenmesini istedikleriniz olursa değerlendirmek isteriz.
 
Son düzenleme:

invisible blood

Uzman üye
15 Eyl 2023
1,177
442

Kotlin Operatörler ve Anahtar Kelimeler​

Sevgili okurlarımız, bugünkü konumuzda anahtar kelimelere ve bazı örnek kodlara yer veriyoruz. Burada ifade edilen belirteçler, anahtar kelime olarak yorumlanır, tanımlayıcı olarak kullanılmaz. Şimdi bazı ifadelerin açıklanmasına başlayalım:

as=> Tip dökümleri için kullanılır. (Kotlin’de bir nesnenin tipi konusunda tip kontrolleri yapılabilir. Tip dönüşümleri yapıldığında nesneler de farklı bir türe dönüşür.

Kotlin’de güvenli olmayan cast işlemi infix operatörü olan as ile yapılır.

val x: String = y as String

Ayrıca içe aktarmak için takma ad belirtilir. İstisnalardan kaçınmak için de olumsuzluk durumunda geri dönen güvenli atama operatörü as olarak adlandırılır.



as?=> Güvenli tip dökümler için kullanılır. istisnalardan kaçınabilmek için başarısızlık halinde geri dönen güvenli atama operatörü olarak ifade edilen “güvenli” (null yapılabilir) yayınlama oparetörüdür.

Val x : String? = y as? String

Bu operatör, dönüşüm başarılı olursa istenilen tipe dönüştürür, fakat başarısızlık yaşandığında “null” döner. Böylece hata ayıklama kolaylaşır.

in=> Bu belirteç, for döngüsünde yenilenen nesneyi belirtir. Yineleyicilik sağlayan durumlar boyunca yinelenir. Bir değerin hangi aralığa, koleksiyona, “içerir” yöntemini ifade eden başka bir duruma ait olup olmadığının kontrolü için bir infix operatörü olarak ve aynı amaç için kullanılan ifadelerde kullanılır. Tür parametresini kontravaryant (karşı değişkin) olarak işaretleyebilir.

!in=> Bir değerin bir aralığa, koleksiyona, “içerir” yöntemini tanımlayan başka bir duruma ait olmadığının kontrolü için kullanılan bir operatördür. Ayrıca aynı amaç için kullanılan ifadelerde kullanılır.

break=> Bir döngüyü sonlandırır.

İnterface=> Bu belirteç bir arayüz bildirir. Kotlin’deki arayüzler, hem yöntem uygulamaları hem de soyut yöntemlerin bildirimlerini içerebilir. Arayüzün tanımlanması, interface anahtar kelimesi ile sağlanır.

İnterface MyInterface {

Fun bar()

Fun foo () {

Foo optimal body

}

}

İs=> Bir nesnenin bir türe uygun olup olmadığını kontrol eder ve bu denetimi gerçekleştirmek için kullanır. Aynı amaç için kullanılan ifadelerde kullanılır.

İf (obj is string) {

print (obj.lenght)

}

İf (obj! İs string) {

print (“Not a string”)

} else {

Print (obj.lenght)

}

!is=> bir nesnenin belirli bir türe sahip olmadığını kontrol eder. “is” belirteci gibi, aynı amaç için kullanılan ifadelerde kullanılır. (is’in olumsuzudur)

class => Sınıf belirtir. Kotlin’deki sınıflar anahtar kelime kullanılarak bildirilir.

Örnek kod:

class Person { /*…*/ }

Sınıf bildirimi şunlardan oluşur; sınıf adı, sınıf başlığı, süslü parantezlerle çevrilen sınıf gövdesi. Sınıfın gövdesi yoksa küme parantezleri kullanılmayabilir.

Örnek kod:

class Empty

Null=> Herhangi bir nesneye işaret etmeyen bir sabittir.

Object=> Anonim sınıfların (bildirimle açıkça ifade edilmeyen sınıfların) nesnelerini oluşturur. Bu tür sınıflar tek seferlik kullanım konusunda faydalıdır. Nesne ifadeleri, “object” anahtar kelimesiyle başlar.

Val hello Word = object {

Val hello = “Hello”

Val Word = “Word”

// Object (nesne) ifadeleri herhangi birini genişletir, bu yüzden “toString()” üzerinde “geçersiz kılma” (override) gereklidir.

Override fun toString() = “$hello $word”

}

Print(HelloWord)

This=>Geçerli bir alıcıyı ifade etmek için kullanılır. Yani bir sınıfın bir üyesindeki geçerli nesneyi belirtir. Bir genişleme fonksiyonunda veya alıcılı bir fonksiyon değişmezi, bir noktanın sol tarafında belirtiler alıcı “this” parametresini ifade eder. Niteleyicileri yoksa da en içteki kapsam this anlamını taşır. Diğer kapsamları belirtmek için etiket niteleyicileri kullanılır. Bu da this’dir.

This ile dış kapsamdan erişmek için kapsamdaki bir etiketin (“this@label”) nerede olması gerektiği belirlenebilir. Burada bahsedilen erişim işlevi; bir sınıf, uzantı işlevi, alıcı ile değişmez etiketli işlev olabilir. Buradaki uygulama işlevi kavramı, bir sınıfın veya arayüzün yeni işlevselliklerle genişletilmesini ifade eder. Bu da uzantı (extensions) adındaki özel bildirimlerle yapılır. Örneğin; üçüncü taraf bir kitaplıktan bir sınıf veya arayüz için değiştirtilemeyecek yeni işlevler yazılabilir ve bu işlevler çağrılabilir. Bu, mekanizma ya da uzatma işlevi adını alır. Alıcı işlev türleri, işlev değişmezlerinin özel biçimiyle (alıcılı işlev değişmezleri) açıklanabilir.

this@label ile ilgili örnek kod:

Class A { // Örtülü etiket@A

İnner class B { //Örtülü etiket @B

Fun Int.foo() { // Örtülü etiket @foo

Val a = this@A

Val b = this@B

Val c = this // foo()’nun alıcısı bir Int.

Valc1 = this@foo’nun alıcısı bir Int.

val funLit = lambda@ fun String.() {

val d = this // FunLit’in alıcısı bir String

}

val funLit2 = { s: String ->

// foo()’nun alıcısı, lambda ifadesini içerdiğinden //beri herhangi bir alıcısı yok

val d1 = this

}

}

}

}

This, ayrıca ikincil bir kurucudan başka bir kurucuyu çağırır. Bu çağırdığı kurucu aynı sınıftandır. Kotlin’de bir sınıfın bir birincil yapıcısı; bir veya daha fazla da ikincil yapıcısı vardır. Birincil yapıcı, sınıf başlığında bildirilir, ayrıca sınıf adından ve isteğe bağlı tür parametrelerinden sonra gelir.

Class person constructor (firstName : String) {/*…*/}

Package=> Geçerli dosyanın paketini belirtir. Bir kaynak dosya, bir paket bildirimiyle başlayabilir.

Package org.example

Fun printMessage () {/*…*/}

Class Mesaage /*…/*}

Kaynak dosyanın sınıfları da işlevleri de tüm içerikleri de bu pakete dahildir. Yukarıdaki örnek kod bloğunda , is’in tam adı printMessage () is’in org.example.printMessage tam adı, .Message org.example.Message. Eğer paket belirtilmemişse bu dosyanın içeriği varsayılan pakete aittir.

Return=> çevreleyen işlevden veya anonim işlevden döner

Val s = person.name? : return

Süper=> Yöntemlerin veya özelliklerin üst sınıf uygulamasını belirtir. Üst sınıf yapıcısını ikincil kurucudan çağırır. Türetilmiş sınıftaki kod, üst sınıf işlevleri ve özellik erişimci uygulamalarını çağırabilir. Bu çağırma işlevi anahtar kelime kullanılarak olabilir.

Open fun draw() { println(“Drawing a rectangle”) }

Val borderColor : String get() =”black”

}

Class FilledRectangle : Rectangle() {

Override fun drive() {

Süper.draw()

Println(“Filling the rectangle”)

}

valfillColor : String get() = süper.borderColor

}

Bir iç sınıfta, dış sınıfın üst kısmına erişim, “super” dış sınıf adını ifade eden anahtar kelime ile yapılır. (super@Outer)

Class FilledRectangle : Rectangle () {

Override fun draw() {

Val filler = Filler()

Filler.drawAndFill()

}

İnner class Filler {

Fun fill() {println(“Filling”) }

Fun drawAndFill()

[email protected]() // Rectangle’ın Draw() uygulamasını doldurmak.

Println (${[email protected]} rengiyle dolu bir dikdörtgen çizildi)

// Rectangle’ın borderColor’ın get() uygulamasını kullandı

}

}

}

Fun main() {

Val fr = FilledRectangle()

Fr.draw()

}

Var=> Değiştirilebilir bir özellik ve yerel değişken bildirebilir. (Bununla ilgili örnek kodlar daha önce yazılmıştır.)

When=> Birden çok dal içeren koşullu ifade tanımlar.

When(x) {

1-> print(“x == 1”)

2-> print(“x == 2”)

Else -> {

Print(“x is neither 1 nor 2”)

}

}

When, bazı dallanma koşulları oluşana kadar bağımsız değişkeni tüm dallarda eşleştirir. Bir ifade olarak kullanılırsa eşleşen ilk dal değeri, genel ifadenin değeri olur.

While=> Ön koşullu bir döngü başlatır. Durumu karşılanıncaya kadar gövdeyi sürekli çalıştırırlar. while ve do-while arasındaki fark, durum kontrol süresidir. “while”, koşulu kontrol eder, eğer koşul sağlanırsa gövdeyi çalıştırır. Sonra koşul kontrolüne geri döner. “do-while” gövdeyi çalıştırdıktan sonra durumu kontrol eder. Eğer uygun olursa döngü tekrarlanır. Gövde, do-while durumuna bakılmaksızın en az bir kez çalışır.

While (x>0) {

x--

}

do {

val y = retrieveData()

} while (y != null) // y, burada görünüyor.

Continue=> çevreleme döngüsünün bir adım sonrasına geçer (???^^^^)Returns and jumps | Kotlin

Do=> bir döngü başlatır, Bu döngü, do/while döngüsüdür ve sonkoşullu bir döngüdür. While, koşulu kontrol eder, koşul sağlanırsa gövdeyi çalıştırır ve sonra koşul kontrolüne geri döner. Do/while de gövdeyi çalıştırır, sonra durumu kontrol eder. Do-while döngü yapısı, do {işlemler;}while(koşul); şeklindedir. Döngü, bir kez işletilir ve while koşulunun kontrol edilmesi önem taşır. Eğer koşul doğruysa döngü devam eder; yanlışsa döngüden çıkılır.

Else=> koşul yanlış olursa yürütülen if ifadesinin bir dalını if bir değer döndürür.

Örnek kod:

Var max = a

İf (a < b) max = b

// else ile

İf ( a > b) {

Max = a

} else {

Max = b

}

Max = if ( a > b) a else b

//else if ifadesi de kullanılabilir

Val maxLimit = 1

Val maxOrLimit = if (maxLimit > a) maxLimit else if ( a > b) a else b

Ayrıca if ile ifadenin blokları belirlenebilir. Böylece son ifade de bloğun değerini oluşturur.

Örnek Kod:

Val max = if ( a > b) {

Print (“Choose a”)

A

} else {

Print (“Choose b”)

B

}

İf, değer döndürmek veya değişkene atamak için kullanılıyorsa else dallanması gerekir.

False=> Blooen türünün yanlış değerini ifade eder. blooen de iki değere sahip olan boole nesnelerini yani true ve false’u temsil eder. blooen’larda yerleşik işlemler kullanılır ve anlamları şöyledir:

|| : (mantıksal VEYA)

&& : (mantıksal VE)

! : olumsuzluk (mantıksal DEĞİL)

Örnek kod:

Val myTrue : Boole = doğru

Val myFalse : Blooen = false

Val boolNull : boolean ? = boş

Println ( myTrue || myFalse )

Println (myTrue && myFalse )

Println ( ! myTrue )

For=> bir for döngüsü başlatır. Yenileyicilik sağlar ve yenilenir bir döngü oluşturur.

Örnek kod:

For (item in collection) print(item)

Fun=> bir fonksiyon bildirmektedir.

Örnek kod:

Fun hasPrefix(x: Any) = when(x) {

İs String -> x.starWith(“prefix)

Else-> false

Bu seri konumuzda özet şekilde kod ifadeleri işlemeye çalıştık, gelecek konumuz için eklenmesini istedikleriniz olursa değerlendirmek isteriz.
Ellerinize sağlık hocam.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.